Wykonywanie zapytań względem programu Microsoft Graph przy użyciu zestawów SDK
Zestawy SDK programu Microsoft Graph zostały zaprojektowane w celu uproszczenia tworzenia wysokiej jakości, wydajnych i odpornych aplikacji, które uzyskują dostęp do programu Microsoft Graph. Zestawy SDK obejmują dwa składniki: bibliotekę usługi i podstawową bibliotekę.
Biblioteka usług zawiera modele i konstruktory żądań, które są generowane na podstawie metadanych programu Microsoft Graph, aby zapewnić zaawansowane i możliwe do odnalezienia środowisko.
Podstawowa biblioteka udostępnia zestaw funkcji ulepszających pracę ze wszystkimi usługami programu Microsoft Graph. Wbudowana obsługa ponawiania prób, bezpieczne przekierowania, uwierzytelnianie przezroczyste i kompresja ładunku, poprawia jakość interakcji aplikacji z programem Microsoft Graph bez dodatkowej złożoności, pozostawiając jednocześnie całkowicie kontrolę. Podstawowa biblioteka zapewnia również obsługę typowych zadań, takich jak stronicowanie za pośrednictwem kolekcji i tworzenie żądań wsadowych.
W tej lekcji poznasz dostępne zestawy SDK i zapoznasz się z przykładami kodu niektórych typowych operacji.
Uwaga
Przykłady kodu w tej lekcji są oparte na wersji 5.65 zestawu Microsoft Graph .NET SDK.
Instalowanie zestawu MICROSOFT Graph .NET SDK
Zestaw SDK platformy .NET programu Microsoft Graph jest dołączony do następujących pakietów NuGet:
-
Microsoft.Graph — zawiera modele i konstruktory żądań do płynnego uzyskiwania dostępu do punktu końcowego za pomocą API.
Microsoft.Graphma zależność odMicrosoft.Graph.Core. -
Microsoft.Graph.Beta — zawiera modele i konstruktory żądań do uzyskiwania dostępu do punktu końcowego
betaza pomocą spójnego interfejsu API.Microsoft.Graph.Betama zależność odMicrosoft.Graph.Core. - Microsoft.Graph.Core — podstawowa biblioteka do wykonywania wywołań do programu Microsoft Graph.
Tworzenie klienta programu Microsoft Graph
Klient programu Microsoft Graph został zaprojektowany tak, aby ułatwić nawiązywanie wywołań do programu Microsoft Graph. Można użyć pojedynczego wystąpienia klienta na okres istnienia aplikacji. W poniższych przykładach kodu pokazano, jak utworzyć wystąpienie klienta programu Microsoft Graph. Dostawca uwierzytelniania obsługuje uzyskiwanie tokenów dostępu dla aplikacji. Różni dostawcy aplikacji obsługują różne scenariusze klienta. Aby uzyskać szczegółowe informacje o dostawcy i opcjach odpowiednich dla danego scenariusza, zobacz Wybieranie dostawcy uwierzytelniania.
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);
Odczytywanie informacji z programu Microsoft Graph
Aby odczytać informacje z programu Microsoft Graph, najpierw musisz utworzyć obiekt żądania, a następnie uruchomić metodę GET w żądaniu.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Pobieranie listy jednostek
Pobieranie listy jednostek jest podobne do pobierania pojedynczej jednostki, z wyjątkiem innych opcji konfigurowania żądania. Parametr $filter zapytania może służyć do zmniejszenia zestawu wyników tylko do tych wierszy, które pasują do podanego warunku. Parametr $orderBy zapytania żąda, aby serwer zawiera listę jednostek posortowanych według określonych właściwości.
// 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'";
});
Usuwanie encji
Żądania usuwania są tworzone w taki sam sposób, jak żądania pobierania jednostki, ale używają DELETE żądania zamiast 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();
Tworzenie nowej jednostki
W przypadku płynnych zestawów SDK opartych na szablonach można dodawać nowe elementy do kolekcji za pomocą POST metody .
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);