Interroger Microsoft Graph à l’aide de SDK

Effectué

Les Kits de développement logiciel (SDK) Microsoft Graph sont conçus pour simplifier la création d’applications qualitatives, efficaces et résilientes qui accèdent à Microsoft Graph. Les SDK incluent deux composants : une bibliothèque de services et une bibliothèque principale.

La bibliothèque de services contient des modèles et des générateurs de requêtes générés à partir de métadonnées Microsoft Graph, afin de proposer une expérience riche et détectable.

La bibliothèque principale fournit un ensemble de fonctionnalités qui améliorent l’utilisation de tous les services Microsoft Graph. La prise en charge intégrée de la gestion des nouvelles tentatives, les redirections sécurisées, l’authentification transparente et la compression de charge utile améliorent la qualité des interactions de votre application avec Microsoft Graph, sans aucune complexité supplémentaire, tout en vous laissant entièrement le contrôle. La bibliothèque principale fournit également la prise en charge des tâches courantes, comme la pagination dans les collections et la création de requêtes par lots.

Dans cette unité, vous découvrez les kits de développement logiciel (SDK) disponibles et découvrez des exemples de code de certaines des opérations les plus courantes.

Remarque

Les exemples de code de cette unité sont basés sur la version 5.65 du Kit de développement logiciel (SDK) Microsoft Graph .NET.

Installer le kit de développement logiciel (SDK) .NET Microsoft Graph

Le kit de développement logiciel (SDK) .NET Microsoft Graph est inclus dans les packages NuGet suivants :

  • Microsoft.Graph : Contient les modèles et les générateurs de requêtes pour accéder au point de terminaison v1.0 avec l’API Fluent. Microsoft.Graph a une dépendance vis-à-vis de Microsoft.Graph.Core.
  • Microsoft.Graph.Beta : Contient les modèles et les générateurs de requêtes pour accéder au point de terminaison beta avec l’API Fluent. Microsoft.Graph.Beta a une dépendance vis-à-vis de Microsoft.Graph.Core.
  • Microsoft.Graph.Core : La bibliothèque principale permettant d’effectuer des appels à Microsoft Graph.

Créer un client Microsoft Graph

Le client Microsoft Graph est conçu pour faciliter les appels à Microsoft Graph. Vous pouvez utiliser une seule instance de client pour la durée de vie de l’application. Les exemples de code suivants montrent comment créer une instance d’un client Microsoft Graph. Le fournisseur d’authentification gère l’acquisition de jetons d’accès pour l’application. Les différents fournisseurs d’applications prennent en charge différents scénarios clients. Pour plus d’informations sur le fournisseur et les options appropriés pour votre scénario, consultez Choisir un fournisseur d’authentification.

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

Lire des informations à partir de Microsoft Graph

Pour lire des informations à partir de Microsoft Graph, vous devez d’abord créer un objet de requête, puis exécuter la méthode GET dessus.

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

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

Récupérer une liste des entités

La récupération d’une liste d’entités est semblable à la récupération d’une entité unique, à ceci près que d’autres options sont disponibles pour la configuration de la requête. Le paramètre de requête $filter peut être utilisé pour réduire le jeu de résultats aux seules lignes qui correspondent à la condition fournie. Le paramètre de requête $orderBy demande que le serveur fournisse la liste des entités triées selon les propriétés spécifiées.

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

Suppression d’une entité

Les requêtes de suppression sont construites de la même façon que les requêtes de récupération d’une entité, mais utilisent une requête DELETE au lieu d’un 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();

Créer une entité

Pour le style fluide et les SDK basés sur des modèles, de nouveaux éléments peuvent être ajoutés aux collections à l'aide d'une méthode POST.

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

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

Autres ressources