Mengkueri Microsoft Graph menggunakan SDK

Selesai

Microsoft Graph SDK dirancang untuk menyederhanakan pembangunan aplikasi berkualitas tinggi, efisien, dan tangguh yang mengakses Microsoft Graph. SDK mencakup dua komponen: pustaka layanan dan pustaka inti.

Pustaka layanan berisi model dan penyusun permintaan yang dihasilkan dari metadata Microsoft Graph untuk memberikan pengalaman yang kaya dan dapat ditemukan.

Pustaka inti menyediakan serangkaian fitur yang meningkatkan kerja dengan semua layanan Microsoft Graph. Dukungan tersemat untuk penanganan percobaan ulang, pengalihan aman, autentikasi transparan, dan pemadatan payload, meningkatkan kualitas interaksi aplikasi Anda dengan Microsoft Graph, tanpa kompleksitas tambahan, selagi membiarkan Anda memiliki kendali penuh. Pustaka inti juga menyediakan dukungan untuk tugas-tugas umum seperti penomoran melalui koleksi dan membuat permintaan batch.

Di unit ini, Anda mempelajari tentang SDK yang tersedia dan melihat beberapa contoh kode dari beberapa operasi yang paling umum.

Catatan

Sampel kode dalam unit ini didasarkan pada versi 5.65 dari Microsoft Graph .NET SDK.

Menginstal SDK .NET Microsoft Graph

SDK .NET Microsoft Graph disertakan dalam paket NuGet berikut:

  • Microsoft.Graph - Berisi penyusun model dan permintaan untuk mengakses titik akhir v1.0 dengan API yang fasih. Microsoft.Graph memiliki dependensi pada Microsoft.Graph.Core.
  • Microsoft.Graph.Beta - Berisi penyusun model dan permintaan untuk mengakses titik akhir beta dengan API yang fasih. Microsoft.Graph.Beta memiliki dependensi pada Microsoft.Graph.Core.
  • Microsoft.Graph.Core - Pustaka inti untuk melakukan panggilan ke Microsoft Graph.

Membuat klien Microsoft Graph

Klien Microsoft Graph dirancang untuk mempermudah melakukan panggilan ke Microsoft Graph. Anda dapat menggunakan instans klien tunggal selama masa hidup aplikasi. Contoh kode berikut menunjukkan cara membuat instans klien Microsoft Graph. Penyedia autentikasi menangani perolehan token akses untuk aplikasi. Penyedia aplikasi yang berbeda mendukung skenario klien yang berbeda. Untuk detail mengenai penyedia dan opsi mana yang sesuai untuk skenario Anda, lihat Memilih Penyedia Autentikasi.

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

Membaca informasi dari Microsoft Graph

Untuk membaca informasi dari Microsoft Graph, Anda harus terlebih dahulu membuat objek permintaan, lalu menjalankan GET metode pada permintaan.

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

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

Mengambil daftar entitas

Mengambil daftar entitas mirip dengan mengambil satu entitas kecuali ada opsi lain untuk mengonfigurasi permintaan. Parameter kueri $filter dapat digunakan untuk mengurangi tataan hasil hanya bagi baris yang cocok dengan syarat yang diberikan. Parameter $orderBy kueri meminta server menyediakan daftar entitas yang diurutkan menurut properti yang ditentukan.

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

Menghapus entitas

Permintaan hapus dibangun dengan cara yang sama dengan permintaan untuk mengambil entitas, namun menggunakan permintaan DELETE alih-alih 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();

Membuat entitas baru

Untuk gaya fasih dan SDK berbasis templat, item baru dapat ditambahkan ke koleksi dengan POST metode .

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

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

Sumber daya lainnya