คิวรี 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);

แหล่งข้อมูลอื่น ๆ

  • อ้างอิง Microsoft Graph REST API v1.0