Dotazování Microsoft Graphu pomocí sad SDK
Sady Microsoft Graph SDK jsou navržené tak, aby zjednodušily vytváření vysoce kvalitních, efektivních a odolných aplikací, které přistupují k Microsoft Graphu. Sady SDK zahrnují dvě komponenty: knihovnu služeb a základní knihovnu.
Knihovna služeb obsahuje modely a tvůrce požadavků, které jsou generovány z metadat Microsoft Graphu, aby poskytovaly bohaté a zjistitelné prostředí.
Základní knihovna poskytuje sadu funkcí, které zlepšují práci se všemi službami Microsoft Graphu. Vložená podpora pro zpracování opakování, zabezpečené přesměrování, transparentní ověřování a kompresi datové části, zlepšení kvality interakcí vaší aplikace s Microsoft Graphem, bez větší složitosti, a přitom zcela v kontrole. Základní knihovna také poskytuje podporu pro běžné úlohy, jako je stránkování prostřednictvím kolekcí a vytváření dávkových požadavků.
V této lekci se seznámíte s dostupnými sadami SDK a seznámíte se s příklady kódu některých nejběžnějších operací.
Poznámka:
Ukázky kódu v této lekci jsou založené na verzi 5.65 sady Microsoft Graph .NET SDK.
Instalace sady Microsoft Graph .NET SDK
Sada Microsoft Graph .NET SDK je součástí následujících balíčků NuGet:
-
Microsoft.Graph – Obsahuje modely a tvůrce požadavků pro přístup ke koncovému
v1.0
bodu pomocí rozhraní FLUENT API.Microsoft.Graph
má závislost naMicrosoft.Graph.Core
. -
Microsoft.Graph.Beta – obsahuje modely a tvůrce požadavků pro přístup ke koncovému
beta
bodu pomocí rozhraní FLUENT API.Microsoft.Graph.Beta
má závislost naMicrosoft.Graph.Core
. - Microsoft.Graph.Core – základní knihovna pro volání do Microsoft Graphu.
Vytvoření klienta Microsoft Graphu
Klient Microsoft Graphu je navržený tak, aby zjednodušil volání do Microsoft Graphu. Po celou dobu života aplikace můžete použít jednu instanci klienta. Následující příklady kódu ukazují, jak vytvořit instanci klienta Microsoft Graphu. Zprostředkovatel ověřování zpracovává získání přístupových tokenů pro aplikaci. Různí poskytovatelé aplikací podporují různé scénáře klientů. Podrobnosti o tom, jakého zprostředkovatele a možnosti jsou vhodné pro váš scénář, najdete v tématu Volba zprostředkovatele ověřová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);
Čtení informací z Microsoft Graphu
Pokud chcete číst informace z Microsoft Graphu, musíte nejprve vytvořit objekt požadavku a pak spustit metodu GET
na požadavku.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Načtení seznamu entit
Načtení seznamu entit se podobá načtení jedné entity s výjimkou dalších možností konfigurace požadavku. Parametr $filter
dotazu lze použít k omezení sady výsledků pouze na řádky, které odpovídají zadané podmínce. Parametr $orderBy
dotazu požaduje, aby server poskytoval seznam entit seřazených podle zadaných vlastností.
// 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'";
});
Odstranění entity
Žádosti o odstranění se vytvářejí stejným způsobem jako požadavky na načtení entity, ale místo DELETE
požadavku použijte požadavek 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();
Vytvoření nové entity
U fluent stylu a sad SDK založených na šablonách je možné do kolekcí přidat nové položky pomocí POST
metody.
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);