การสร้างระบบบันทึกการประชุมอัตโนมัติด้วย Microsoft Graph API และ Azure OpenAI ใน Power Platform

PlAwAnSaI

Administrator
Microsoft 365 Copilot มี Function สร้างบันทึกการประชุมใน Teams แต่ค่าลิขสิทธิ์อาจสูงเกินไปสำหรับองค์กร สำหรับผู้ที่มองหาทางเลือกที่ประหยัดกว่า การใช้ Power Automate หรือ Power Apps ร่วมกับ Microsoft Graph API และ Azure OpenAI จะเป็น Solution ที่ปรับขนาดได้ และเป็นมิตรกับงบประมาณ

ในบทความนี้ เราจะสำรวจวิธีการทำให้กระบวนการสร้างบันทึกการประชุมเป็นไปโดยอัตโนมัติ โดยใช้ประโยชน์จาก Microsoft Graph API ในการดึงข้อมูลการถอดเสียงการประชุมและสรุปข้อมูลเหล่านั้นโดยใช้ Model ภาษาของ Azure OpenAI เราจะกล่าวถึงทั้งสิทธิ์ที่ได้รับมอบหมาย (การดึงข้อมูลการถอดเสียงในฐานะผู้ใช้ที่ลงชื่อเข้าใช้) และสิทธิ์ของ App (การดึงข้อมูลการถอดเสียงในนามของผู้ใช้)

ในส่วนที่ 1 เราจะสำรวจ Endpoint ของ Microsoft Graph API ที่จำเป็นสำหรับการเข้าถึงบันทึกการประชุม Teams และการตั้งค่าการลงทะเบียน App Entra ID ในส่วนที่ 2 เราจะดูวิธีการ Integrate API เหล่านี้เข้ากับ Power Automate โดยใช้ตัวเชื่อมต่อแบบกำหนดเอง (สำหรับผู้ใช้ที่ลงชื่อเข้าใช้) และตัวเชื่อมต่อ HTTP (สำหรับการเข้าถึงระดับ App) เพื่อดึงบันทึกการประชุม

การดึงข้อมูลบันทึกการประชุมด้วย Microsoft Graph API

ก่อนอื่น เราต้องดึงข้อมูลการถอดเสียงการประชุมจาก Microsoft Teams โดยใช้ Microsoft Graph API, Microsoft มี Endpoint สำหรับการเข้าถึงข้อมูลการถอดเสียงการประชุมที่บันทึกไว้ แต่ต้องมีสิทธิ์และการตั้งค่าเฉพาะบางอย่างด้วย

ข้อกำหนดเบื้องต้น

ก่อนดำเนินการต่อ โปรดตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:
  • เข้าถึงการลงทะเบียน App ใน Portal Entra ID
  • License Power Automate / Power Apps ระดับ Premium หากต้องการทดสอบตัวเชื่อมต่อแบบกำหนดเอง คุณสามารถสมัครใช้แผน Community ได้หากคุณไม่มีแผนระดับ Premium
  • Instance บริการ Azure OpenAI สำหรับประมวลผลข้อความ
ขั้นตอนที่ 1: ตั้งค่าสิทธิ์ใน Azure AD

ในการเข้าถึง Endpoint ของ Microsoft Graph API ด้วยตัวเชื่อมต่อแบบกำหนดเอง และตัวเชื่อมต่อ HTTP ใน Power Automate จะต้องมีการสร้างการลงทะเบียน App Entra ID สำหรับการเข้าถึงแบบ Delegate และการเข้าถึงแบบ App

ScenarioPermission Typeใช้กับ
Signed-in UserDelegated PermissionCustom Connector
Automation / Background (ไม่มี User) App เรียก Graph API เองApplication PermissionHTTP Connector

การลงทะเบียน App Entra ID สำหรับผู้ใช้ที่ลงชื่อเข้าใช้ (สิทธิ์การเข้าถึงแบบ Delegate) – ตัวเชื่อมต่อแบบกำหนดเอง:

  1. ไปที่ Microsoft Entra ID

  2. สร้างการลงทะเบียน App ใหม่ และจดบันทึก App (Client) ID, Tenant ID, และ Client Secret

  3. ภายใต้สิทธิ์การเข้าถึง API ให้เพิ่มสิทธิ์ที่ได้รับมอบหมายต่อไปนี้:
    1. OnlineMeetings.Read
    2. OnlineMeetingTranscript.Read.All
    3. Calendars.Read
    4. User.Read

      picture1.png

      .
  4. ให้สิทธิ์ผู้ดูแลระบบในการใช้สิทธิ์ดังกล่าว

การลงทะเบียน App Entra ID ในนามของผู้ใช้ที่เข้าสู่ระบบ (การเข้าถึง App) – ตัวเชื่อมต่อ HTTP:

  1. ไปที่ Microsoft Entra ID

  2. สร้างการลงทะเบียน App ใหม่ และจดบันทึก App (Client) ID, Tenant ID, และ Client Secret

  3. ภายใต้สิทธิ์การใช้งาน API ให้เพิ่มสิทธิ์การใช้งาน App ต่อไปนี้:
    1. OnlineMeetings.Read.All
    2. OnlineMeetingTranscript.Read.All
    3. Calendars.Read
    4. User.Read.All

      image-1.png

อนุญาตให้ App เข้าถึงการประชุม Online ในนามของผู้ใช้:

ติดตั้ง Teams PowerShell: Install-Module -Name MicrosoftTeams > Y

ในการเข้าถึง Endpoint Graph API เพื่อดึงข้อมูลการถอดเสียงการประชุมในนามของผู้ใช้ที่ลงชื่อเข้าใช้ จะต้องกำหนดค่านโยบายการเข้าถึง App สำหรับการลงทะเบียน App Entra ID ที่สร้างไว้ก่อนหน้านี้โดยใช้ Client ID เรียกใช้ Script PowerShell ดังต่อไปนี้
Code:
New-CsApplicationAccessPolicy -Identity AAP-policy -AppIds "ReplaceClientIdfromEntraIDAppRegforApplicationAccess" -Description "To grant the Application access to MS Graph API Endpoints for Transcription"
Grant-CsApplicationAccessPolicy -PolicyName AAP-policy -Global

หมายเหตุ: หากการลงทะเบียน App ไม่ได้รับอนุญาตให้เข้าถึงผ่านนโยบายการเข้าถึง App การพยายามเข้าถึงปลายทาง Graph API สำหรับเนื้อหาการถอดเสียงจะส่งผลให้เกิดข้อผิดพลาดดังต่อไปนี้
Code:
Application is not allowed to perform operations on the user ‘xxxx-xxxxx-xxx-xxx-xxxx’, neither is allowed access through RSC permission evaluation.

ขั้นตอนที่ 2: ดึงข้อมูลการถอดเสียงโดยใช้ Microsoft Graph API

Microsoft Graph API มี Endpoint สำหรับเข้าถึงและจัดการกิจกรรมในปฏิทิน และบันทึกการประชุมของ Teams เราจะมาดูวิธีการดึงข้อมูลกิจกรรมของผู้ใช้ แยก ID การประชุม, และรับ URL ของเนื้อหาบันทึกการประชุมกัน โดยใช้ Graph Explorer

  1. การดึงข้อมูล User Event เพื่อดึงรายการ Event ในปฏิทินของผู้ใช้:
    Code:
    GET https://graph.microsoft.com/v1.0/me/calendar/events
    คำขอนี้จะส่งรายละเอียดเกี่ยวกับ Event ที่ผู้ใช้กำหนดไว้กลับมา รวมถึงหัวข้อ เวลาเริ่มต้นและสิ้นสุด สถานที่ และผู้เข้าร่วม

การตั้งค่าตัวเชื่อมต่อแบบกำหนดเอง:

ตัวเชื่อมต่อแบบกำหนดเองทำหน้าที่เป็นสะพานเชื่อมระหว่าง Power Apps หรือ Power Automate กับ Microsoft Graph API ช่วยให้การสื่อสารเป็นไปได้ เราได้สร้างตัวเชื่อมต่อแบบกำหนดเองพร้อมการดำเนินการที่จำเป็นทั้งหมดเพื่อสร้างบันทึกการประชุมโดยใช้ Microsoft Graph API ไว้แล้ว สามารถ Download ได้จาก Link นี้ หลังจากนำเข้า Solution ลงใน Power Apps Environment แล้ว ให้ไปที่ Tab ความปลอดภัยในตัวเชื่อมต่อแบบกำหนดเอง และคัดลอก Redirect URL

image.png



:cool:
 
Last edited:
Top