Truy vấn Microsoft Graph bằng SDK
Các SDK Microsoft Graph được thiết kế để đơn giản hóa việc xây dựng các ứng dụng chất lượng cao, hiệu quả và đàn hồi truy cập Microsoft Graph. SDK bao gồm hai cấu phần: một thư viện dịch vụ và một thư viện cốt lõi.
Thư viện dịch vụ chứa các mô hình và trình tạo yêu cầu được tạo từ siêu dữ liệu Microsoft Graph để cung cấp trải nghiệm phong phú và có thể phát hiện.
Thư viện cốt lõi cung cấp một tập hợp các tính năng tăng cường làm việc với tất cả các dịch vụ Microsoft Graph. Hỗ trợ nhúng để thử xử lý lại, chuyển hướng an toàn, xác thực trong suốt và nén tải trọng, cải thiện chất lượng tương tác của ứng dụng với Microsoft Graph, mà không làm tăng thêm độ phức tạp, trong khi vẫn giúp bạn hoàn toàn kiểm soát. Thư viện lõi cũng cung cấp hỗ trợ cho các tác vụ phổ biến như phân trang thông qua bộ sưu tập và tạo yêu cầu lô.
Trong đơn vị này, bạn tìm hiểu về các SDK có sẵn và xem một số ví dụ về một số thao tác phổ biến nhất.
Ghi
Các mẫu mã trong đơn vị này dựa trên phiên bản 5.65 của Microsoft Graph .NET SDK.
Cài đặt Microsoft Graph .NET SDK
Microsoft Graph .NET SDK được bao gồm trong các gói NuGet sau:
-
microsoft.Graph - Chứa các mô hình và trình tạo yêu cầu để truy nhập vào điểm cuối
v1.0của bạn bằng API fluent.Microsoft.Graphphụ thuộc vàoMicrosoft.Graph.Core. -
Microsoft.Graph.Beta - Chứa các mô hình và trình tạo yêu cầu để truy cập điểm cuối
betabằng API thông thạo.Microsoft.Graph.Betaphụ thuộc vàoMicrosoft.Graph.Core. - Microsoft.Graph.Core - Thư viện cốt lõi để thực hiện cuộc gọi đến Microsoft Graph.
Tạo máy khách Microsoft Graph
Máy khách Microsoft Graph được thiết kế để giúp việc thực hiện cuộc gọi đến Microsoft Graph trở nên đơn giản. Bạn có thể sử dụng một ví dụ khách hàng duy nhất cho thời hạn của ứng dụng. Các ví dụ về mã sau đây cho thấy cách tạo phiên bản của máy khách Microsoft Graph. Nhà cung cấp xác thực xử lý việc lấy mã thông báo truy nhập cho ứng dụng. Các nhà cung cấp ứng dụng khác nhau hỗ trợ các kịch bản máy khách khác nhau. Để biết chi tiết về nhà cung cấp và tùy chọn nào phù hợp với kịch bản của bạn, hãy xem Chọn Nhà cung cấp Xác thực.
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);
Đọc thông tin từ Microsoft Graph
Để đọc thông tin từ Microsoft Graph, trước tiên bạn cần tạo một đối tượng yêu cầu, rồi chạy phương pháp GET theo yêu cầu.
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
Truy xuất danh sách thực thể
Truy xuất danh sách các thực thể tương tự như truy xuất một thực thể duy nhất ngoại trừ có các tùy chọn khác để cấu hình yêu cầu. Tham $filter truy vấn mới có thể được dùng để giảm tập kết quả thành chỉ những hàng khớp với điều kiện được cung cấp. Tham số $orderBy yêu cầu máy chủ cung cấp danh sách các thực thể được sắp xếp theo thuộc tính đã xác định.
// 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'";
});
Xóa bỏ thực thể
Yêu cầu xóa được xây dựng theo cách tương tự như yêu cầu truy xuất thực thể, nhưng sử dụng yêu cầu DELETE thay vì yêu cầu 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();
Tạo thực thể mới
Đối với các SDK dựa trên mẫu và kiểu thông thạo, bạn có thể thêm các mục mới vào bộ sưu tập bằng phương POST này.
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);