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 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 deMicrosoft.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 deMicrosoft.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 GET
arquivo .
// 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);