Query's uitvoeren op Microsoft Graph met behulp van SDK's
De Microsoft Graph SDK's zijn ontworpen om het bouwen van hoogwaardige, efficiënte en tolerante toepassingen die toegang hebben tot Microsoft Graph te vereenvoudigen. De SDK's bevatten twee onderdelen: een servicebibliotheek en een kernbibliotheek.
De servicebibliotheek bevat modellen en aanvraagbouwers die worden gegenereerd op basis van Microsoft Graph-metagegevens om een rijke en detecteerbare ervaring te bieden.
De kernbibliotheek biedt een set functies die het werken met alle Microsoft Graph-services verbeteren. Ingesloten ondersteuning voor het verwerken van nieuwe pogingen, veilige omleidingen, transparante verificatie en payloadcompressie, verbeteren de kwaliteit van de interacties van uw toepassing met Microsoft Graph, zonder extra complexiteit, terwijl u volledig in controle blijft. De kernbibliotheek biedt ook ondersteuning voor algemene taken, zoals paging via verzamelingen en het maken van batchaanvragen.
In deze les leert u meer over de beschikbare SDK's en ziet u enkele codevoorbeelden van enkele van de meest voorkomende bewerkingen.
De Microsoft Graph .NET SDK installeren
De Microsoft Graph .NET SDK is opgenomen in de volgende NuGet-pakketten:
- Microsoft.Graph : bevat de modellen en aanvraagbouwers voor toegang tot het
v1.0
eindpunt met de fluent-API.Microsoft.Graph
heeft een afhankelijkheid vanMicrosoft.Graph.Core
. - Microsoft.Graph.Beta : bevat de modellen en aanvraagbouwers voor toegang tot het
beta
eindpunt met de fluent-API.Microsoft.Graph.Beta
heeft een afhankelijkheid vanMicrosoft.Graph.Core
. - Microsoft.Graph.Core : de kernbibliotheek voor het maken van aanroepen naar Microsoft Graph.
Een Microsoft Graph-client maken
De Microsoft Graph-client is ontworpen om het eenvoudig te maken om microsoft Graph aan te roepen. U kunt één clientexemplaren gebruiken voor de levensduur van de toepassing. In de volgende codevoorbeelden ziet u hoe u een exemplaar van een Microsoft Graph-client maakt. De verificatieprovider verwerkt het verkrijgen van toegangstokens voor de toepassing. De verschillende toepassingsproviders ondersteunen verschillende clientscenario's. Zie Een verificatieprovider kiezen voor meer informatie over welke provider en opties geschikt zijn voor uw scenario.
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);
Informatie van Microsoft Graph lezen
Als u informatie uit Microsoft Graph wilt lezen, moet u eerst een aanvraagobject maken en vervolgens de GET
methode uitvoeren op de aanvraag.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Een lijst met entiteiten ophalen
Het ophalen van een lijst met entiteiten is vergelijkbaar met het ophalen van één entiteit, behalve dat er andere opties zijn voor het configureren van de aanvraag. De $filter
queryparameter kan worden gebruikt om de resultatenset te beperken tot alleen de rijen die overeenkomen met de opgegeven voorwaarde. De $orderBy
queryparameter vraagt aan dat de server de lijst met entiteiten levert die zijn gesorteerd op de opgegeven eigenschappen.
// GET https://graph.microsoft.com/v1.0/me/messages?$select=subject,sender&$filter=<some condition>&orderBy=receivedDateTime
var messages = await graphClient.Me.Messages
.Request()
.Select(m => new {
m.Subject,
m.Sender
})
.Filter("<filter condition>")
.OrderBy("receivedDateTime")
.GetAsync();
Een entiteit verwijderen
Verwijderaanvragen worden op dezelfde manier samengesteld als aanvragen om een entiteit op te halen, maar gebruik een DELETE
aanvraag in plaats van een GET
.
// DELETE https://graph.microsoft.com/v1.0/me/messages/{message-id}
string messageId = "AQMkAGUy...";
var message = await graphClient.Me.Messages[messageId]
.Request()
.DeleteAsync();
Een nieuwe entiteit maken
Voor SDK's die een vloeiende stijl ondersteunen, kunnen nieuwe items worden toegevoegd aan verzamelingen met een Add
methode. Voor sdk's op basis van een sjabloon maakt het aanvraagobject een post
methode beschikbaar.
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer"
};
var newCalendar = await graphClient.Me.Calendars
.Request()
.AddAsync(calendar);