Consultar o Microsoft Graph usando SDKs
Os SDKs do Microsoft Graph foram projetados para simplificar a criação de aplicativos de alta qualidade, eficientes e resilientes que acessem o Microsoft Graph. Os SDKs incluem dois componentes: uma biblioteca de serviço e uma biblioteca principal.
A biblioteca de serviços contém modelos e construtores de solicitações gerados com metadados do Microsoft Graph, para fornecer uma experiência avançada e detectável.
A biblioteca principal fornece um conjunto de recursos que aprimoram o trabalho com todos os serviços do Microsoft Graph. O suporte inserido para manipulação de novas tentativas, redirecionamentos seguros, autenticação transparente e compactação de carga útil, melhora a qualidade das interações do seu aplicativo com o Microsoft Graph, sem complexidade adicional, enquanto deixa você completamente no controle. A biblioteca principal também oferece suporte para tarefas comuns, como paginar por coleções e criar 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.
Observação
Os exemplos de código nesta unidade são baseados na versão 5.65 do SDK do Microsoft Graph .NET.
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ção para acessar o ponto de extremidade
v1.0
com a API fluente.Microsoft.Graph
tem uma dependência deMicrosoft.Graph.Core
. - Microsoft.Graph.Beta - contém os modelos e construtores de solicitação para acessar o ponto de extremidade
beta
com a API fluente.Microsoft.Graph.Beta
tem uma dependência deMicrosoft.Graph.Core
. - Microsoft.Graph.Core - a biblioteca principal para fazer chamadas para o Microsoft Graph.
Crie um cliente do Microsoft Graph
O cliente do Microsoft Graph foi desenvolvido para simplificar a realização de chamadas para o Microsoft Graph. Você pode usar uma única instância do cliente para o tempo de vida do aplicativo. Os exemplos de código a seguir mostram como criar uma instância de um cliente do Microsoft Graph. O provedor de autenticação lidará 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, confira 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);
Ler 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 método GET
na solicitação.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Recuperar uma lista de entidades
A recuperação de uma lista de entidades é semelhante à recuperação de apenas uma entidade, exceto que há várias outras opções para configurar a solicitação. O parâmetro de consulta $filter
pode ser usado para reduzir o conjunto de resultados para apenas as linhas que correspondem à condição fornecida. O parâmetro de consulta $orderBy
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'";
});
Excluir uma entidade
As solicitações de exclusão são construídas da mesma maneira que as solicitações de recuperação de uma entidade, mas usam uma solicitação DELETE
em vez de 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();
Criar uma nova entidade
Para SDKs baseados em modelo e estilo fluente, novos itens podem ser adicionados a coleções com um método POST
.
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);