หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
คู่มือนี้จะแนะนําคุณเกี่ยวกับการตั้งค่าและการทดสอบตัวอย่างตรรกะของเซิร์ฟเวอร์ที่รวม Power Pages เข้ากับ Microsoft Graph และ SharePoint online
ขั้นตอนที่ 1: ดาวน์โหลดแพคเกจตัวอย่าง
- ไปที่คลังเก็บ https://github.com/microsoft/power-pages-samplesGitHub
- เลือกโค้ด>ดาวน์โหลด ZIP
- หลังจากดาวน์โหลด ให้แตกไฟล์ ZIP ไปยังโฟลเดอร์ภายในเครื่อง เช่น:
C:\PowerPages\ServerLogic - นําทางไปยังเส้นทางที่แยกออกมา:
samples/server-logic/sharepoint-integrationโฟลเดอร์นี้ประกอบด้วยevent-registration.zipแพคเกจโซลูชัน ซึ่งรวมถึงทรัพยากรไซต์ Power Pages ที่คุณจะนําเข้าในขั้นตอนในภายหลัง
อีกวิธีหนึ่งคือใช้การลอกแบบ git ถ้าคุณต้องการ
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
ขั้นตอนที่ 2: ข้อกําหนดเบื้องต้น
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:
- เข้าถึง Microsoft Entra ID (Azure AD) ที่มีสิทธิ์ในการลงทะเบียนแอป
- เข้าถึง ไซต์ SharePoint Online (ตัวอย่างเช่น https://contoso.sharepoint.com/sites/EventSite)
ขั้นตอนที่ 3: สร้างและกําหนดค่าแอปพลิเคชัน Entra ID
คุณต้องลงทะเบียนแอปเพื่ออนุญาตให้มีรหัสตรรกะของเซิร์ฟเวอร์ในการรับรองความถูกต้องกับ Microsoft Graph
สร้างการลงทะเบียนแอป
- ไปที่ พอร์ทัล Azure และเลือก การลงทะเบียนแอป
- เลือก + การลงทะเบียนใหม่
- ใส่ชื่อ (ตัวอย่างเช่น PowerPages-Graph-Integration)
- เลือกบัญชีในไดเรกทอรีองค์กรนี้เท่านั้น
Note
คุณไม่จําเป็นต้องใส่ URI เปลี่ยนเส้นทางสําหรับตัวอย่างนี้
- เลือก ลงทะเบียน
กําหนดค่าสิทธิ์ API
- ในแอปใหม่ ไปที่สิทธิ์> APIเพิ่มสิทธิ์
- เลือกสิทธิ์แอปพลิเคชัน>
- เพิ่มสิทธิ์ต่อไปนี้:
- Sites.ReadWrite.All (สําหรับการดําเนินการไฟล์ SharePoint)
- Mail.Send (ไม่บังคับ – จําเป็นถ้าคุณวางแผนที่จะเปิดใช้งานส่วนอีเมล)
- เลือก ให้ความยินยอมของผู้ดูแลระบบ สําหรับผู้เช่าของคุณ
สร้างข้อมูลลับไคลเอ็นต์
- ไปที่
ใบรับรอง & ข้อมูลลับ ข้อมูลลับของไคลเอ็นต์ - เลือก + ข้อมูลลับไคลเอ็นต์ใหม่
- ป้อนคําอธิบายและเลือกระยะเวลาหมดอายุ (ตัวอย่างเช่น หกเดือน)
- เลือก เพิ่ม และ คัดลอกค่าที่สร้างขึ้น ทันที ซึ่งเป็น CLIENT_SECRET ของคุณ
รวบรวมค่าที่จําเป็น
จากแอป Azure ของคุณ:
- ไคลเอ็นต์ ID> CLIENT_ID
- ID> ผู้เช่า TENANT_ID
- ข้อมูลลับ> ไคลเอ็นต์ CLIENT_SECRET
ขั้นตอนที่ 4: ระบุไซต์และโฟลเดอร์ SharePoint ของคุณ
สคริปต์อัปโหลดตั๋วเหตุการณ์ที่สร้างขึ้นไปยังไซต์ SharePoint
- ระบุชื่อ โฮสต์ SharePoint และ เส้นทางไซต์ของคุณ: ตัวอย่างเช่น: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - ตรวจสอบให้แน่ใจว่ามีไลบรารีเอกสารชื่อ เอกสาร อยู่ (ค่าเริ่มต้น)
ขั้นตอนที่ 5: ปรับใช้แพคเกจ
สร้างไซต์ใหม่โดยการนําเข้าไซต์ที่ดาวน์โหลดล่าสุดจาก GitHub เมื่อต้องการเรียนรู้วิธีการนําเข้าไซต์ ให้ดู power-pages-solutions
ในระหว่างการอัปเกรดไซต์ ให้อัปเดตค่าสําหรับตัวแปรสภาพแวดล้อม อัปเดตค่าต่อไปนี้ที่คุณรวบรวมไว้ในขั้นตอนก่อนหน้านี้:
- รหัสไคลเอ็นต์
- รหัสผู้เช่า
- ข้อมูลลับไคลเอ็นต์ (เก็บค่านี้ไว้ใน Key Vault และใช้ในตัวแปรสภาพแวดล้อม สําหรับการทดสอบ คุณสามารถเก็บไว้ในตัวแปรสภาพแวดล้อมได้โดยตรง)
- ชื่อโฮสต์
- SITE_PATH
การไฮไลต์สคริปต์: ส่วนการกําหนดค่า
const CLIENT_ID = Server.SiteSetting.Get("CLIENT_ID");
const CLIENT_SECRET = Server.SiteSetting.Get("CLIENT_SECRET");;
const TENANT_ID = Server.SiteSetting.Get("TENANT_ID");
const HOSTNAME = Server.SiteSetting.Get("HOSTNAME");
const SITE_PATH = Server.SiteSetting.Get("SITE_PATH");
สิ่งเหล่านี้จะถูกโหลดอย่างปลอดภัยจากการตั้งค่าไซต์ Power Pages (ตัวแปรสภาพแวดล้อม)
ขั้นตอนที่ 6: ทดสอบการรวม SharePoint
สคริปต์ประมวลผล การส่งฟอร์มการลงทะเบียนเหตุการณ์ ได้รับโทเค็นการเข้าถึง Microsoft Graph สร้าง ตั๋ว HTML อัปโหลดไปยัง SharePoint และสร้างระเบียนใน Dataverse
การเน้นสคริปต์: การเรียกใช้ Microsoft Graph สําหรับโทเค็นการเข้าถึง
async function getAccessToken() {
const body = {
"client_id": CLIENT_ID,
"client_secret": CLIENT_SECRET,
"scope": "https://graph.microsoft.com/.default",
"grant_type": "client_credentials"
};
const tokenResp = await Server.Connector.HttpClient.PostAsync(
`https://login.microsoftonline.com/${TENANT_ID}/oauth2/v2.0/token`,
JSON.stringify(body),
{ "Content-Type": "application/x-www-form-urlencoded" },
"application/x-www-form-urlencoded"
);
const tokenJson = JSON.parse(JSON.parse(tokenResp).Body);
return tokenJson.access_token;
}
การไฮไลต์สคริปต์: การอัปโหลดตั๋วไปยัง SharePoint
const siteResp = await Server.Connector.HttpClient.GetAsync(
`https://graph.microsoft.com/v1.0/sites/${HOSTNAME}:${SITE_PATH}`,
{ Authorization: `Bearer ${accessToken}` }
);
const siteId = JSON.parse(JSON.parse(siteResp).Body).id;
const driveResp = await Server.Connector.HttpClient.GetAsync(
`https://graph.microsoft.com/v1.0/sites/${siteId}/drive`,
{ Authorization: `Bearer ${accessToken}` }
);
const driveId = JSON.parse(JSON.parse(driveResp).Body).id;
const uploadUrl = `https://graph.microsoft.com/v1.0/drives/${driveId}/root:/Tickets/${fileName}:/content`;
await Server.Connector.HttpClient.PutAsync(
uploadUrl,
htmlTicket,
{ Authorization: `Bearer ${accessToken}`, "Content-Type": "text/html" },
"text/html"
);
หลังจากการเรียกใช้สําเร็จ:
- ระเบียนใหม่ปรากฏใน Dataverse ภายใต้ crd69_eventregistrations
- ไฟล์ตั๋ว HTML ถูกอัปโหลดไปยังโฟลเดอร์ ตั๋วเอกสาร > SharePoint ของคุณ
- เขตข้อมูล crd69_ticketurl มีลิงก์ไปยังไฟล์ตั๋วที่ถูกอัปโหลด
(ไม่บังคับ) ขั้นตอนที่ 7: เปิดใช้งานการแจ้งเตือนทางอีเมล
วิธีการส่งอีเมลยืนยันไปยังผู้เข้าร่วมประชุม:
- ยกเลิกการใส่ความคิดเห็นในส่วน "ส่งอีเมลยืนยัน" ในสคริปต์
- แทนที่ {senderUserId} ด้วย ID ผู้ใช้ที่เปิดใช้งานกล่องจดหมาย ที่ถูกต้อง (ตัวอย่างเช่น บัญชีบริการ)
- ตรวจสอบให้แน่ใจว่าได้เพิ่มสิทธิ์ Mail.Send และให้ความยินยอมจากผู้ดูแลระบบแล้ว
ข้อมูลที่เกี่ยวข้อง
ภาพรวมตรรกะของเซิร์ฟเวอร์
ตรรกะของเซิร์ฟเวอร์ผู้เขียน
วัตถุเซิร์ฟเวอร์
วิธีการโต้ตอบกับตาราง Dataverse โดยใช้ตรรกะของเซิร์ฟเวอร์