Abfragen von Microsoft Graph mithilfe von SDKs

Abgeschlossen

Microsoft Graph-SDKs sollen die Entwicklung hochwertiger, effizienter und resilienter Anwendungen, die auf Microsoft Graph zugreifen, vereinfachen. Die SDKs beinhalten zwei Komponenten: eine Dienstbibliothek und eine Kernbibliothek.

Die Dienstbibliothek enthält Modelle und Anforderungs-Generatoren, die aus Microsoft Graph-Metadaten generiert werden, um eine umfassende und auffindbare Erfahrung zu bieten.

Die Kernbibliothek bietet eine Reihe von Features, die die Arbeit mit allen Microsoft Graph-Diensten verbessern. Eingebettete Unterstützung für die Wiederholungsbehandlung, sichere Umleitungen, transparente Authentifizierung und Nutzlastkomprimierung verbessern die Qualität der Interaktionen Ihrer Anwendung mit Microsoft Graph ohne zusätzliche Komplexität, während Sie die Kontrolle behalten. Die Kernbibliothek bietet auch Unterstützung für allgemeine Aufgaben wie das Blättern durch Sammlungen und das Erstellen von Batchanforderungen.

Diese Lerneinheit enthält Informationen zu den verfügbaren SDKs und Codebeispiele für einige der gängigsten Vorgänge.

Hinweis

Die Codebeispiele in dieser Lerneinheit basieren auf Version 5.65 des Microsoft Graph .NET-SDK.

Installieren des Microsoft Graph .NET SDK

Das Microsoft Graph .NET SDK ist in den folgenden NuGet-Paketen enthalten:

  • Microsoft.Graph: Enthält die Modelle und Anforderungsgeneratoren für den Zugriff auf den v1.0-Endpunkt mit der Fluent-API. Microsoft.Graph ist abhängig von Microsoft.Graph.Core.
  • Microsoft.Graph.Beta: Enthält die Modelle und Anforderungsgeneratoren für den Zugriff auf den beta-Endpunkt mit der Fluent-API. Microsoft.Graph.Beta ist abhängig von Microsoft.Graph.Core.
  • Microsoft.Graph.Core: Die Kernbibliothek für Aufrufe von Microsoft Graph.

Erstellen eines Microsoft Graph-Clients

Der Microsoft Graph-Client ist so konzipiert, dass Aufrufe von Microsoft Graph einfach ausgeführt werden können. Sie können eine einzelne Clientinstanz für die Lebensdauer der Anwendung verwenden. Die folgenden Codebeispiele zeigen, wie Sie eine Instanz eines Microsoft Graph-Clients erstellen. Der Authentifizierungsanbieter übernimmt das Abrufen von Zugriffstoken für die Anwendung. Die verschiedenen Anwendungsanbieter unterstützen verschiedene Clientszenarien. Ausführliche Informationen dazu, welcher Anbieter und welche Optionen für Ihr Szenario geeignet sind, finden Sie unter Auf einem Szenario basierende Auswahl eines Authentifizierungsanbieters.

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);

Lesen von Informationen aus Microsoft Graph

Um Informationen aus Microsoft Graph zu lesen, müssen Sie zunächst ein Anforderungsobjekt erstellen und dann die GET-Methode für die Anforderung ausführen.

// GET https://graph.microsoft.com/v1.0/me

var user = await graphClient.Me
    .GetAsync();

Abrufen einer Liste mit Entitäten

Das Abrufen einer Liste von Entitäten ist ähnlich wie das Abrufen einer einzelnen Entität, mit dem Unterschied, dass es weitere Optionen für die Konfiguration der Anforderung gibt. Der $filter-Abfrageparameter kann verwendet werden, um das Resultset auf die Zeilen zu reduzieren, die mit der angegebenen Bedingung übereinstimmen. Mit dem Abfrageparameter $orderBy wird die Liste der Entitäten sortiert nach den angegebenen Eigenschaften vom Server angefordert.

// 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'";
    });

Löschen einer Entität

Löschanforderungen werden auf die gleiche Weise wie Anforderungen zum Abrufen einer Entität erstellt, wobei jedoch DELETE anstelle von GET verwendet wird.

// 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();

Erstellen einer neuen Entität

Für freie und vorlagenbasierte SDKs können neue Elemente mit einer POST-Methode zu Sammlungen hinzugefügt werden.

// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
    Name = "Volunteer",
};

var newCalendar = await graphClient.Me.Calendars
    .PostAsync(calendar);

Weitere Ressourcen