Tee kysely Microsoft Graphista SDK:iden avulla

Valmis

Microsoft Graph SDK:t on suunniteltu yksinkertaistamaan laadukkaiden, tehokkaiden ja kestävien sovellusten rakentamista, jotka käyttävät Microsoft Graphia. SDK:t sisältävät kaksi osaa: palvelukirjaston ja ydinkirjaston.

Palvelukirjasto sisältää malleja ja pyynnön luojia, jotka on luotu Microsoft Graphin metatiedoista monipuolisen ja löydettävissä olevan käyttökokemuksen tarjoamiseksi.

Ydinkirjasto tarjoaa joukon ominaisuuksia, jotka parantavat työskentelyä kaikkien Microsoft Graph -palvelujen kanssa. Upotettu tuki uudelleenyritysten käsittelylle, suojatuille uudelleenohjauksille, läpinäkyvälle todentamielle ja hyötykuorman pakkaamiselle, paranna sovelluksesi microsoft Graph -vuorovaikutusten laatua ilman monimutkaisuutta ja jätä samalla sinut täysin hallintaan. Ydinkirjasto tukee myös yleisiä tehtäviä, kuten kokoelmien sivuttamista ja eräpyyntöjen luomista.

Tässä osiossa tutustut käytettävissä oleviin SDK:ihin ja näet joitakin koodiesimerkkejä yleisimmistä toiminnoista.

Muistiinpano

Tämän yksikön koodinäytteet perustuvat Microsoft Graph .NET SDK:n versioon 5.65.

Microsoft Graph .NET SDK:n asentaminen

Microsoft Graph .NET SDK sisältyy seuraaviin NuGet-paketteihin:

  • Microsoft.Graph – Sisältää mallit ja pyynnön koontiversiot, jotta he voivat käyttää v1.0 päätepistettä sujuvan ohjelmointirajapinnan avulla. Microsoft.Graph on riippuvainen Microsoft.Graph.Core.
  • Microsoft.Graph.Beta – Sisältää mallit ja pyynnön koostajat, jotta he voivat käyttää beta päätepistettä sujuvan ohjelmointirajapinnan avulla. Microsoft.Graph.Beta on riippuvainen Microsoft.Graph.Core.
  • Microsoft.Graph.Core – Microsoft Graph -kutsujen ydinkirjasto.

Microsoft Graph -asiakkaan luominen

Microsoft Graph -asiakasohjelma on suunniteltu yksinkertaiseksi kutsujen tekemiseksi Microsoft Graphiin. Voit käyttää yksittäistä asiakasesiintymää koko sovelluksen elinkaaren ajan. Seuraavissa koodiesimerkeissä näytetään, miten Voit luoda Microsoft Graph -asiakasohjelman esiintymän. Todennuspalvelu käsittelee sovelluksen käyttöoikeustietueiden hankkimisen. Eri sovelluspalveluntarjoajat tukevat eri asiakasskenaarioita. Lisätietoja siitä, mikä palvelu ja vaihtoehdot sopivat skenaarioosi, on kohdassa Todennuspalvelun valitseminen.

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);

Lue tietoja Microsoft Graphista

Jos haluat lukea tietoja Microsoft Graphista, sinun on ensin luotava pyyntö-objekti ja suoritettava sitten GET-menetelmä pyynnössä.

// GET https://graph.microsoft.com/v1.0/me

var user = await graphClient.Me
    .GetAsync();

Entiteettiluettelon noutaminen

Entiteettiluettelon noutaminen muistuttaa yksittäisen entiteetin noutamista, paitsi että pyynnön määrittämiseen on muitakin vaihtoehtoja. $filter kyselyparametrilla tulosjoukkoa voidaan pienentää vain niille riveille, jotka vastaavat annettua ehtoa. $orderBy kyselyparametripyynnöt, jotka palvelin tarjoaa määritettyjen ominaisuuksien mukaan lajiteltujen entiteettien luettelon.

// 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'";
    });

Entiteetin poistaminen

Poistopyynnöt muodostetaan samalla tavalla kuin pyynnöt entiteetin noutamiseksi, mutta ne käyttävät DELETE pyyntöä GETsijaan.

// 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();

Uuden entiteetin luominen

Sujuvaa tyyliä ja mallipohjaisia SDK:ita varten kokoelmiin voidaan lisätä uusia kohteita POST menetelmällä.

// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
    Name = "Volunteer",
};

var newCalendar = await graphClient.Me.Calendars
    .PostAsync(calendar);

Muut resurssit