Consulta de Microsoft Graph mediante los SDK
Los SDK de Microsoft Graph se han diseñado para simplificar la compilación de aplicaciones de alta calidad, eficaces y resistentes que acceden a Microsoft Graph. Los SDK incluyen dos componentes: una biblioteca de servicios y una biblioteca principal.
La biblioteca de servicios contiene modelos y generadores de solicitudes que se generan a partir de metadatos de Microsoft Graph para proporcionar una experiencia rica y reconocible.
La biblioteca principal proporciona un conjunto de características que mejoran el trabajo con todos los servicios de Microsoft Graph. La compatibilidad integrada con el control de reintentos, las redirecciones seguras, la autenticación transparente y la compresión de carga útil mejoran la calidad de las interacciones de la aplicación con Microsoft Graph, sin complejidad adicional, a la vez que le otorga completamente el control. La biblioteca principal también proporciona compatibilidad con tareas comunes, como la paginación de colecciones y la creación de solicitudes por lotes.
En esta unidad, conocerá los SDK disponibles y verá algunos ejemplos de código de algunas de las operaciones más comunes.
Nota:
Los ejemplos de código de esta unidad se basan en la versión 5.65 del SDK de .NET de Microsoft Graph.
Instalación del SDK de .NET de Microsoft Graph
El SDK de .NET de Microsoft Graph se incluye en los siguientes paquetes NuGet:
- Microsoft.Graph: contiene los modelos y los generadores de solicitudes para acceder al punto de conexión
v1.0
con la API fluida.Microsoft.Graph
tiene una dependencia enMicrosoft.Graph.Core
. - Microsoft.Graph.Beta: contiene los modelos y los generadores de solicitudes para acceder al punto de conexión
beta
con la API fluida.Microsoft.Graph.Beta
tiene una dependencia enMicrosoft.Graph.Core
. - Microsoft.Graph.Core: la biblioteca principal para realizar llamadas a Microsoft Graph.
Creación de un cliente de Microsoft Graph
El cliente de Microsoft Graph está diseñado para facilitar la realización de llamadas a Microsoft Graph. Puede usar una única instancia de cliente durante la vigencia de la aplicación. En los ejemplos de código siguientes se muestra cómo crear una instancia de un cliente de Microsoft Graph. El proveedor de autenticación controla la adquisición de tokens de acceso para la aplicación. Los distintos proveedores de aplicaciones admiten distintos escenarios de cliente. Para más información sobre qué proveedor y opciones son adecuadas para su escenario, consulte Selección de un proveedor de autenticación.
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);
Lectura de información de Microsoft Graph
Para leer información de Microsoft Graph, primero debe crear un objeto de solicitud y, luego, ejecutar el método GET
en la solicitud.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Recuperación de una lista de entidades
Recuperar una lista de entidades es similar a recuperar una sola entidad, salvo que hay otras opciones para configurar la solicitud. El parámetro de consulta $filter
se puede usar para reducir el conjunto de resultados a solo aquellas filas que coincidan con la condición proporcionada. El parámetro de consulta $orderBy
solicita que el servidor proporcione la lista de entidades ordenadas por las propiedades 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'";
});
Eliminación de una entidad
Las solicitudes de eliminación se construyen de la misma manera que las solicitudes para recuperar una entidad, pero usan una solicitud DELETE
en lugar 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();
Creación de una entidad
Para los SDK basados en plantillas y estilo fluidos, se pueden agregar nuevos elementos a colecciones con un 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);