Créer un client Microsoft Graph

Le client Microsoft Graph est conçu pour simplifier les appels à Microsoft Graph. Vous pouvez utiliser un seul client instance pour la durée de vie de l’application. Pour plus d’informations sur l’ajout et l’installation du package client Microsoft Graph dans votre projet, consultez Installer le Kit de développement logiciel (SDK).

Les exemples de code suivants montrent comment créer un instance d’un client Microsoft Graph avec un fournisseur d’authentification dans les langues prises en charge. Le fournisseur d’authentification gère l’acquisition de jetons d’accès pour l’application.

De nombreux fournisseurs d’authentification différents sont disponibles pour chaque langue et chaque plateforme. Les différents fournisseurs d’authentification prennent en charge différents scénarios clients. Pour plus d’informations sur le fournisseur et les options qui conviennent à votre scénario, consultez Choisir un fournisseur d’authentification.

L’ID client est l’ID d’inscription d’application qui est généré lorsque vous inscrivez votre application dans le Portail Azure.

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 DeviceCodeCredentialOptions
{
    AuthorityHost = AzureAuthorityHosts.AzurePublicCloud,
    ClientId = clientId,
    TenantId = tenantId,
    // Callback function that receives the user prompt
    // Prompt contains the generated device code that user must
    // enter during the auth process in the browser
    DeviceCodeCallback = (code, cancellation) =>
    {
        Console.WriteLine(code.Message);
        return Task.FromResult(0);
    },
};

// https://learn.microsoft.com/dotnet/api/azure.identity.devicecodecredential
var deviceCodeCredential = new DeviceCodeCredential(options);

var graphClient = new GraphServiceClient(deviceCodeCredential, scopes);