استعلام Microsoft Graph باستخدام SDKs
تم تصميم Microsoft Graph SDKs لتبسيط إنشاء تطبيقات عالية الجودة، وفعالة، ومرنة يمكنها الوصول إلى Microsoft Graph. تتضمن SDKs مكونين: مكتبة خدمة ومكتبة أساسية.
تحتوي مكتبة الخدمة على نماذج ومنشئات طلبات تم إنشاؤها من بيانات تعريف Microsoft Graph لتوفير تجربة غنية وقابلة للاكتشاف.
توفر المكتبة الأساسية مجموعة من الميزات التي تعزز العمل مع جميع خدمات Microsoft Graph. يعمل الدعم المضمن لمعالجة إعادة المحاولة وعمليات إعادة التوجيه الآمنة والمصادقة الشفافة وضغط الحمولة على تحسين جودة تفاعلات تطبيقك مع Microsoft Graph، دون أي تعقيد إضافي، مع تركك متحكماً بشكل كامل. توفر المكتبة الأساسية أيضاً الدعم للمهام الشائعة مثل الترحيل عبر المجموعات وإنشاء طلبات الدفعات.
في هذه الوحدة، يمكنك التعرف على SDKs المتوفرة ورؤية بعض أمثلة التعليمات البرمجية لبعض العمليات الأكثر شيوعا.
إشعار
تستند نماذج التعليمات البرمجية في هذه الوحدة إلى الإصدار 5.65 من Microsoft Graph .NET SDK.
تثبيت Microsoft Graph .NET SDK
يتم تضمين Microsoft Graph.NET SDK في حزم NuGet التالية:
- يحتوي Microsoft.Graph - على النماذج ومنشئي الطلبات للوصول إلى نقطة النهاية
v1.0باستخدام واجهة برمجة التطبيقات بطلاقة. يحظىMicrosoft.Graphبتبعية فيMicrosoft.Graph.Core. - يحتوي Microsoft.Graph.Beta - على النماذج ومنشئي الطلبات للوصول إلى نقطة النهاية
betaباستخدام واجهة برمجة التطبيقات بطلاقة. يحظىMicrosoft.Graph.Betaبتبعية فيMicrosoft.Graph.Core. - Microsoft.Graph.Core - المكتبة الأساسية لإجراء مكالمات إلى Microsoft Graph.
قم بإنشاء عميل Microsoft Graph
تم تصميم عميل Microsoft Graph لتسهيل إجراء مكالمات إلى Microsoft Graph. يمكنك استخدام مثيل عميل واحد لعمر التطبيق. توضح أمثلة التعليمات البرمجية التالية كيفية إنشاء مثيل عميل Microsoft Graph. يعالج موفر المصادقة الحصول على رموز الوصول المميزة للتطبيق. يدعم موفرو التطبيقات المختلفون سيناريوهات مختلفة للعميل. للحصول على تفاصيل حول الموفر والخيارات المناسبة للسيناريو، راجع اختيار موفر مصادقة.
var scopes = new[] { "User.Read" };
// Multi-tenant apps can use "common",
// single-tenant apps must use the tenant ID from the Azure portal
var tenantId = "common";
// Value from app registration
var clientId = "YOUR_CLIENT_ID";
// using Azure.Identity;
var options = new TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
// Callback function that receives the user prompt
// Prompt contains the generated device code that you must
// enter during the auth process in the browser
Func<DeviceCodeInfo, CancellationToken, Task> callback = (code, cancellation) => {
Console.WriteLine(code.Message);
return Task.FromResult(0);
};
// /dotnet/api/azure.identity.devicecodecredential
var deviceCodeCredential = new DeviceCodeCredential(
callback, tenantId, clientId, options);
var graphClient = new GraphServiceClient(deviceCodeCredential, scopes);
قراءة المعلومات من Microsoft Graph
لقراءة المعلومات من Microsoft Graph، تحتاج أولا إلى إنشاء كائن طلب، ثم تشغيل GET الأسلوب على الطلب.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
استرداد قائمة بالكيانات
يعد استرداد قائمة الكيانات مشابها لاسترداد كيان واحد باستثناء وجود خيارات أخرى لتكوين الطلب. يمكن استخدام معلمة الاستعلام $filter لتقليل مجموعة النتائج إلى الصفوف التي تطابق الشرط المتوفر فقط.
$orderBy تطلب معلمة الاستعلام أن يوفر الخادم قائمة الكيانات التي تم فرزها حسب الخصائص المحددة.
// GET https://graph.microsoft.com/v1.0/me/messages?
// $select=subject,sender&$filter=subject eq 'Hello world'
var messages = await graphClient.Me.Messages
.GetAsync(requestConfig =>
{
requestConfig.QueryParameters.Select =
["subject", "sender"];
requestConfig.QueryParameters.Filter =
"subject eq 'Hello world'";
});
حذف كيان
يتم إنشاء طلبات الحذف بنفس الطريقة التي يتم بها إنشاء طلبات استرداد كيان، ولكن استخدم الطلب DELETE بدلاً من GET.
// DELETE https://graph.microsoft.com/v1.0/me/messages/{message-id}
// messageId is a string containing the id property of the message
await graphClient.Me.Messages[messageId]
.DeleteAsync();
إنشاء كيان جديد
بالنسبة إلى النمط بطلاقة وSDKs المستندة إلى القالب، يمكن إضافة عناصر جديدة إلى المجموعات باستخدام أسلوب POST .
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);