Consultar o Microsoft Graph usando SDKs

Concluído

Os SDKs do Microsoft Graph foram projetados para simplificar a criação de aplicativos de alta qualidade, eficientes e resilientes que acessam o Microsoft Graph. Os SDKs incluem dois componentes: uma biblioteca de serviços e uma biblioteca principal.

A biblioteca de serviços contém modelos e construtores de solicitações que são gerados a partir de metadados do Microsoft Graph para fornecer uma experiência rica e detetável.

A biblioteca principal fornece um conjunto de recursos que aprimoram o trabalho com todos os serviços do Microsoft Graph. Suporte incorporado para manipulação de novas tentativas, redirecionamentos seguros, autenticação transparente e compactação de carga útil, melhoram a qualidade das interações do seu aplicativo com o Microsoft Graph, sem complexidade adicional, deixando você completamente no controle. A biblioteca principal também fornece suporte para tarefas comuns, como paginação através de coleções e criação de solicitações em lote.

Nesta unidade, você aprenderá sobre os SDKs disponíveis e verá alguns exemplos de código de algumas das operações mais comuns.

Nota

Os exemplos de código nesta unidade são baseados na versão 5.65 do Microsoft Graph .NET SDK.

Instalar o SDK do Microsoft Graph .NET

O SDK do Microsoft Graph .NET está incluído nos seguintes pacotes NuGet:

  • Microsoft.Graph - Contém os modelos e construtores de solicitações para acessar o v1.0 ponto de extremidade com a API fluente. Microsoft.Graph tem uma dependência de Microsoft.Graph.Core.
  • Microsoft.Graph.Beta - Contém os modelos e construtores de solicitações para acessar o beta ponto de extremidade com a API fluente. Microsoft.Graph.Beta tem uma dependência de Microsoft.Graph.Core.
  • Microsoft.Graph.Core - A biblioteca principal para fazer chamadas para o Microsoft Graph.

Criar um cliente Microsoft Graph

O cliente Microsoft Graph foi projetado para simplificar a realização de chamadas para o Microsoft Graph. Você pode usar uma única instância de cliente durante o tempo de vida do aplicativo. Os exemplos de código a seguir mostram como criar uma instância de um cliente Microsoft Graph. O provedor de autenticação lida com a aquisição de tokens de acesso para o aplicativo. Os diferentes provedores de aplicativos oferecem suporte a diferentes cenários de cliente. Para obter detalhes sobre qual provedor e opções são apropriados para seu cenário, consulte Escolher um provedor de autenticação.

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

Leia informações do Microsoft Graph

Para ler informações do Microsoft Graph, primeiro você precisa criar um objeto de solicitação e, em seguida, executar o GET método na solicitação.

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

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

Recuperar uma lista de entidades

Recuperar uma lista de entidades é semelhante a recuperar uma única entidade, exceto que há outras opções para configurar a solicitação. O $filter parâmetro query pode ser usado para reduzir o conjunto de resultados apenas para as linhas que correspondem à condição fornecida. O $orderBy parâmetro query solicita que o servidor forneça a lista de entidades classificadas pelas propriedades especificadas.

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

Eliminar uma entidade

As solicitações de exclusão são construídas da mesma forma que as solicitações para recuperar uma entidade, mas usam uma DELETE solicitação em vez de um GETarquivo .

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

Criar uma nova entidade

Para SDKs baseados em modelo e estilo fluente, novos itens podem ser adicionados às coleções com um POST método.

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

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

Outros recursos