คิวรี Microsoft Graph โดยใช้ SDK
SDK ของ Microsoft Graph ถูกออกแบบมาเพื่อลดความซับซ้อนของการสร้างแอปพลิเคชันคุณภาพสูง มีประสิทธิภาพ และมีความยืดหยุ่นที่เข้าถึง Microsoft Graph SDK มีสองคอมโพเนนต์: ไลบรารีบริการและไลบรารีหลัก
ไลบรารีบริการประกอบด้วยแบบจําลองและตัวสร้างคําขอที่สร้างขึ้นจากเมตาดาต้าของ Microsoft Graph เพื่อมอบประสบการณ์ที่สมบูรณ์และสามารถค้นหาได้
ไลบรารีหลักมีชุดของคุณลักษณะที่ปรับปรุงการทํางานกับบริการ Microsoft Graph ทั้งหมด การสนับสนุนแบบฝังตัวสําหรับการจัดการลองใหม่ การเปลี่ยนเส้นทางที่ปลอดภัย การรับรองความถูกต้องแบบโปร่งใส และการบีบอัดส่วนข้อมูล ปรับปรุงคุณภาพของการโต้ตอบของแอปพลิเคชันของคุณกับ Microsoft Graph โดยไม่มีความซับซ้อนเพิ่มเติม ในขณะที่ยังปล่อยให้คุณอยู่ในการควบคุมอย่างสมบูรณ์ ไลบรารีหลักยังให้การสนับสนุนสําหรับงานทั่วไป เช่น การแบ่งหน้าผ่านคอลเลกชันและการสร้างคําขอชุดงาน
ในหน่วยนี้ คุณจะได้เรียนรู้เกี่ยวกับ SDK ที่พร้อมใช้งานและดูตัวอย่างโค้ดบางส่วนของการดําเนินการที่พบบ่อยที่สุด
โน้ต
ตัวอย่างโค้ดในหน่วยนี้ขึ้นอยู่กับเวอร์ชัน 5.65 ของ Microsoft Graph .NET SDK
ติดตั้ง Microsoft Graph .NET SDK
Microsoft Graph .NET SDK จะรวมอยู่ในแพคเกจ NuGet ต่อไปนี้:
-
Microsoft.Graph - ประกอบด้วยแบบจําลองและผู้สร้างคําขอสําหรับการเข้าถึงจุดสิ้นสุด
v1.0ด้วย API ที่คล่องตัวMicrosoft.Graphมีการขึ้นต่อกันบนMicrosoft.Graph.Core -
Microsoft.Graph.Beta - ประกอบด้วยแบบจําลองและผู้สร้างคําขอสําหรับการเข้าถึงจุดสิ้นสุด
betaด้วย API ที่คล่องตัวMicrosoft.Graph.Betaมีการขึ้นต่อกันบนMicrosoft.Graph.Core - Microsoft.Graph.Core - ไลบรารีหลักสําหรับการเรียกใช้ไปยัง Microsoft Graph
สร้างไคลเอ็นต์ Microsoft Graph
ไคลเอ็นต์ Microsoft Graph ถูกออกแบบมาเพื่อให้ง่ายต่อการเรียกใช้ไปยัง Microsoft Graph คุณสามารถใช้อินสแตนซ์ไคลเอ็นต์เดียวสําหรับอายุการใช้งานของแอปพลิเคชัน ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างอินสแตนซ์ของไคลเอ็นต์ Microsoft Graph ผู้ให้บริการการรับรองความถูกต้องจัดการรับโทเค็นการเข้าถึงสําหรับแอปพลิเคชัน ผู้ให้บริการแอปพลิเคชันที่แตกต่างกันสนับสนุนสถานการณ์ไคลเอ็นต์ที่แตกต่างกัน สําหรับรายละเอียดเกี่ยวกับผู้ให้บริการและตัวเลือกที่เหมาะสมสําหรับสถานการณ์ของคุณ ให้ดู เลือกผู้ให้บริการการรับรองความถูกต้อง
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);
อ่านข้อมูลจาก Microsoft Graph
เมื่อต้องการอ่านข้อมูลจาก Microsoft Graph ก่อนอื่นคุณต้องสร้างวัตถุคําขอ แล้วเรียกใช้วิธีการ GET ตามคําขอ
// GET https://graph.microsoft.com/v1.0/me
var user = await graphClient.Me
.GetAsync();
เรียกใช้รายการของเอนทิตี
การค้นคืนรายการของเอนทิตีจะคล้ายกับการเรียกคืนเอนทิตีเดียวยกเว้นมีตัวเลือกอื่น ๆ สําหรับการกําหนดค่าคําขอ
$filter พารามิเตอร์คิวรีสามารถใช้เพื่อลดชุดผลลัพธ์เป็นแถวที่ตรงกับเงื่อนไขที่ระบุเท่านั้น
$orderBy การร้องขอพารามิเตอร์คิวรีที่เซิร์ฟเวอร์แสดงรายการของเอนทิตีโดยเรียงลําดับตามคุณสมบัติที่ระบุ
// 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'";
});
ลบเอนทิตี
คําขอการลบจะถูกสร้างขึ้นในลักษณะเดียวกับการร้องขอเพื่อเรียกใช้เอนทิตี แต่ใช้คําขอ DELETE แทน 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();
สร้างเอนทิตีใหม่
สําหรับสไตล์คล่องตัวและ SDK ตามเทมเพลต สามารถเพิ่มรายการใหม่ลงในคอลเลกชันด้วยวิธีการ POST
// POST https://graph.microsoft.com/v1.0/me/calendars
var calendar = new Calendar
{
Name = "Volunteer",
};
var newCalendar = await graphClient.Me.Calendars
.PostAsync(calendar);