SDK'ları kullanarak Microsoft Graph'i sorgulama
Microsoft Graph SDK'ları, Microsoft Graph'a erişen yüksek kaliteli, verimli ve dayanıklı uygulamalar derlemeyi basitleştirmek için tasarlanmıştır. SDK'lar iki bileşen içerir: hizmet kitaplığı ve çekirdek kitaplık.
Hizmet kitaplığı, zengin ve bulunabilir bir deneyim sağlamak için Microsoft Graph meta verilerinden oluşturulan modelleri ve istek oluşturucularını içerir.
Çekirdek kitaplık, tüm Microsoft Graph hizmetleriyle çalışmayı geliştiren bir dizi özellik sağlar. Yeniden deneme işleme, güvenli yeniden yönlendirmeler, saydam kimlik doğrulaması ve yük sıkıştırma için ekli destek, uygulamanızın Microsoft Graph ile etkileşimlerinin kalitesini artırır ve karmaşıklık eklemeden denetimi tamamen size bırakır. Çekirdek kitaplık, koleksiyonlar arasında sayfalama ve toplu istek oluşturma gibi yaygın görevler için de destek sağlar.
Bu ünitede kullanılabilir SDK'lar hakkında bilgi edinip en yaygın işlemlerden bazılarının kod örneklerini göreceksiniz.
Microsoft Graph .NET SDK'sını yükleme
Microsoft Graph .NET SDK'sı aşağıdaki NuGet paketlerine dahildir:
- Microsoft.Graph - Uç noktaya akıcı API ile erişmek
v1.0
için modelleri ve istek oluşturucularını içerir.Microsoft.Graph
üzerinde bir bağımlılığıMicrosoft.Graph.Core
vardır. - Microsoft.Graph.Beta - Uç noktaya akıcı API ile erişmek
beta
için modelleri ve istek oluşturucularını içerir.Microsoft.Graph.Beta
üzerinde bir bağımlılığıMicrosoft.Graph.Core
vardır. - Microsoft.Graph.Core - Microsoft Graph'a çağrı yapmak için temel kitaplık.
Microsoft Graph istemcisi oluşturma
Microsoft Graph istemcisi, Microsoft Graph'a çağrı yapmayı kolaylaştıracak şekilde tasarlanmıştır. Uygulamanın ömrü boyunca tek bir istemci örneği kullanabilirsiniz. Aşağıdaki kod örnekleri, Bir Microsoft Graph istemcisinin örneğinin nasıl oluşturulacağını gösterir. Kimlik doğrulama sağlayıcısı, uygulama için erişim belirteçleri alma işlemini işler. Farklı uygulama sağlayıcıları farklı istemci senaryolarını destekler. Senaryonuza uygun sağlayıcı ve seçenekler hakkında ayrıntılı bilgi için bkz . Kimlik Doğrulama Sağlayıcısı Seçme.
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'tan bilgi okuma
Microsoft Graph'tan bilgi okumak için önce bir istek nesnesi oluşturmanız ve ardından istekte GET
yöntemini çalıştırmanız gerekir.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Varlık listesini alma
Varlıkların listesini almak, isteği yapılandırmaya yönelik başka seçenekler dışında tek bir varlığın alınmasına benzer. Sorgu $filter
parametresi, sonuç kümesini yalnızca sağlanan koşulla eşleşen satırlara küçültmek için kullanılabilir. Sorgu $orderBy
parametresi, sunucunun belirtilen özelliklere göre sıralanmış varlıkların listesini sağlamasını istemektedir.
// GET https://graph.microsoft.com/v1.0/me/messages?$select=subject,sender&$filter=<some condition>&orderBy=receivedDateTime
var messages = await graphClient.Me.Messages
.Request()
.Select(m => new {
m.Subject,
m.Sender
})
.Filter("<filter condition>")
.OrderBy("receivedDateTime")
.GetAsync();
Varlığı silme
Silme istekleri, bir varlığı alma istekleriyle aynı şekilde oluşturulur, ancak yerine istek DELETE
GET
kullanır.
// DELETE https://graph.microsoft.com/v1.0/me/messages/{message-id}
string messageId = "AQMkAGUy...";
var message = await graphClient.Me.Messages[messageId]
.Request()
.DeleteAsync();
Yeni varlık oluşturma
Akıcı bir stili destekleyen SDK'lar için bir yöntemle Add
koleksiyonlara yeni öğeler eklenebilir. Şablon tabanlı SDK'lar için istek nesnesi bir post
yöntemi kullanıma sunar.
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer"
};
var newCalendar = await graphClient.Me.Calendars
.Request()
.AddAsync(calendar);