ตรวจสอบสิทธิ์และให้สิทธิ์แอป Chat และ Google Chat API

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

ภาพรวมกระบวนการ

แผนภาพต่อไปนี้แสดงขั้นตอนระดับสูงของการตรวจสอบสิทธิ์และการให้สิทธิ์สำหรับ Google Chat

ขั้นตอนระดับสูงสำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์ Google Chat
รูปที่ 1 ขั้นตอนระดับสูงสำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์ Google Chat

  1. กำหนดค่าโปรเจ็กต์ Google Cloud, เปิดใช้ Chat API และกำหนดค่าแอป Chat: ในระหว่างการพัฒนา ให้สร้างโปรเจ็กต์ Google Cloud ในโปรเจ็กต์ Google Cloud ให้เปิดใช้ Chat API, กำหนดค่าแอป Chat และตั้งค่าการตรวจสอบสิทธิ์ ดูข้อมูลเพิ่มเติมได้ที่พัฒนาบน Google Workspace และสร้างแอปใน Chat

  2. Call Chat API: เมื่อแอปเรียกใช้ Chat API ระบบจะส่งข้อมูลเข้าสู่ระบบการตรวจสอบสิทธิ์ไปยัง Chat API หากแอปตรวจสอบสิทธิ์ด้วยบัญชีบริการ ระบบจะส่งข้อมูลเข้าสู่ระบบไปเป็นส่วนหนึ่งของโค้ดของแอป หากแอปกำหนดให้มีการเรียกใช้ Chat API โดยใช้การตรวจสอบสิทธิ์ของผู้ใช้ที่ยังไม่ได้รับการอนุมัติ แอปจะแจ้งให้ผู้ใช้ลงชื่อเข้าใช้

  3. ขอทรัพยากร: แอปขอสิทธิ์เข้าถึงด้วยขอบเขตที่คุณระบุขณะตั้งค่าการตรวจสอบสิทธิ์

  4. ขอความยินยอม: หากแอปมีการตรวจสอบสิทธิ์ในฐานะผู้ใช้ Google จะแสดงหน้าจอขอความยินยอม OAuth เพื่อให้ผู้ใช้ตัดสินใจได้ว่าจะให้แอปของคุณเข้าถึงข้อมูลที่ขอหรือไม่ การตรวจสอบสิทธิ์ด้วยบัญชีบริการไม่ได้ ต้องได้รับความยินยอมจากผู้ใช้

  5. ส่งคำขอที่อนุมัติสำหรับทรัพยากร: หากผู้ใช้ยินยอมให้ใช้ขอบเขตการให้สิทธิ์ App Bundle ข้อมูลเข้าสู่ระบบและขอบเขตที่ผู้ใช้อนุมัติลงในคำขอ คำขอจะส่งไปยังเซิร์ฟเวอร์การให้สิทธิ์ของ Google เพื่อรับโทเค็นเพื่อการเข้าถึง

  6. Google แสดงผลโทเค็นเพื่อการเข้าถึง: โทเค็นเพื่อการเข้าถึงมีรายการขอบเขตที่ให้สิทธิ์ หากรายการขอบเขตที่แสดงผลมีการจำกัดมากกว่าขอบเขตที่ขอ แอปจะปิดฟีเจอร์ที่โทเค็นจำกัดอยู่

  7. การเข้าถึงทรัพยากรที่ขอ: แอปของคุณใช้โทเค็นเพื่อการเข้าถึงจาก Google เพื่อเรียกใช้ Chat API และเข้าถึงทรัพยากร Chat API

  8. รับโทเค็นการรีเฟรช (ไม่บังคับ): หากแอปต้องเข้าถึง Google Chat API เมื่อพ้นอายุการใช้งานของโทเค็นเพื่อการเข้าถึงครั้งเดียว แอปอาจได้รับโทเค็นสำหรับรีเฟรช ดูข้อมูลเพิ่มเติมได้ที่ใช้ OAuth 2.0 เพื่อเข้าถึง Google API

  9. ขอทรัพยากรเพิ่มเติม: หากแอปต้องการสิทธิ์เข้าถึงเพิ่มเติม แอปจะขอให้ผู้ใช้ มอบขอบเขตใหม่ ซึ่งจะส่งผลให้ระบบส่งคำขอใหม่เพื่อรับโทเค็นเพื่อการเข้าถึง (ขั้นตอนที่ 3-6)

เมื่อแอป Chat กำหนดให้มีการตรวจสอบสิทธิ์

แอป Chat สามารถส่งข้อความเพื่อตอบสนองต่อการโต้ตอบของผู้ใช้หรือไม่พร้อมกันก็ได้ นอกจากนี้ยังทำสิ่งต่างๆ ในนามของผู้ใช้ได้ด้วย เช่น สร้างพื้นที่ใน Chat หรือขอรายชื่อคนในพื้นที่ใน Chat

แอป Chat ไม่ได้กำหนดให้มีการตรวจสอบสิทธิ์เพื่อตอบกลับการโต้ตอบของผู้ใช้ เว้นแต่ว่าแอป Chat จะเรียกใช้ Chat API หรือ Google API อื่นในขณะที่ประมวลผลการตอบกลับ

หากต้องการส่งข้อความแบบไม่พร้อมกันหรือทำงานในนามของผู้ใช้ แอป Chat จะส่งคำขอ RESTful ไปยัง Chat API ซึ่งต้องมีการตรวจสอบสิทธิ์และการให้สิทธิ์

การตอบสนองต่อการโต้ตอบของผู้ใช้ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์

แอป Google Chat ไม่จำเป็นต้องตรวจสอบสิทธิ์ว่าเป็นผู้ใช้หรือแอป Chat เพื่อรับและตอบกลับเหตุการณ์การโต้ตอบพร้อมกัน

แอป Google Chat จะได้รับเหตุการณ์การโต้ตอบเมื่อใดก็ตามที่ผู้ใช้โต้ตอบหรือเรียกใช้แอป Chat ซึ่งรวมถึงเหตุการณ์ต่อไปนี้

แผนภาพต่อไปนี้แสดงลำดับการตอบกลับคำขอระหว่างผู้ใช้ Chat กับแอป Chat

ไม่มีการให้สิทธิ์สําหรับเหตุการณ์การโต้ตอบในแอป Chat
ภาพที่ 2 เหตุการณ์การโต้ตอบกับแอปใน Chat ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์

  1. ผู้ใช้ส่งข้อความไปยังแอป Chat ใน Google Chat
  2. Google Chat จะส่งต่อข้อความไปยังแอป
  3. แอปจะได้รับข้อความ ประมวลผลข้อความ และส่งการตอบกลับไปยัง Google Chat
  4. Google Chat จะแสดงคำตอบสําหรับผู้ใช้หรือในพื้นที่ทำงาน

ลำดับนี้จะเกิดซ้ำในเหตุการณ์การโต้ตอบของแอป Chat แต่ละเหตุการณ์

ข้อความแบบไม่พร้อมกันต้องมีการตรวจสอบสิทธิ์

ข้อความแบบไม่พร้อมกันจะเกิดขึ้นเมื่อแอป Chat ส่งคำขอไปยัง Chat API ซึ่งต้องมีการตรวจสอบสิทธิ์และการให้สิทธิ์

การเรียกใช้ Chat API ช่วยให้แอปใน Chat สามารถโพสต์ข้อความ ไปยัง Google Chat หรือทำงานให้เสร็จและเข้าถึงข้อมูลในนามของผู้ใช้ได้ ตัวอย่างเช่น หลังจากตรวจพบการหยุดทำงานของเซิร์ฟเวอร์ แอป Chat จะเรียกใช้ Chat API เพื่อดำเนินการต่อไปนี้ได้

  • สร้างพื้นที่ใน Chat สำหรับตรวจสอบและแก้ไขการหยุดทำงานโดยเฉพาะ
  • เพิ่มบุคคลไปยังพื้นที่ใน Chat
  • โพสต์ข้อความไปยังพื้นที่ใน Chat เพื่อให้รายละเอียดเกี่ยวกับการหยุดทำงาน

แผนภาพต่อไปนี้แสดงลำดับข้อความแบบไม่พร้อมกันระหว่างแอป Chat กับพื้นที่ใน Chat

ต้องมีการตรวจสอบสิทธิ์สำหรับข้อความที่ไม่พร้อมกัน
รูปที่ 3 ข้อความแบบไม่พร้อมกันต้องมีการตรวจสอบสิทธิ์

  1. แอป Chat จะสร้างข้อความโดยการเรียกใช้ Chat API โดยใช้เมธอด spaces.messages.create และรวมข้อมูลเข้าสู่ระบบของผู้ใช้ในคำขอ HTTP
  2. Google Chat จะตรวจสอบสิทธิ์แอป Chat ด้วยบัญชีบริการหรือข้อมูลเข้าสู่ระบบของผู้ใช้
  3. Google Chat จะแสดงข้อความของแอปไปยังพื้นที่ใน Chat ที่ระบุ

ขอบเขต Chat API

กำหนดค่าหน้าจอขอความยินยอม OAuth ของแอปและเลือกขอบเขตเพื่อกำหนดข้อมูลที่แสดงต่อผู้ใช้และผู้ตรวจสอบแอป รวมถึงลงทะเบียนแอปเพื่อให้เผยแพร่ได้ในภายหลัง

หากต้องการกำหนดระดับการเข้าถึงที่กำหนดให้กับแอป คุณต้องระบุและประกาศขอบเขตการให้สิทธิ์ ขอบเขตการให้สิทธิ์คือสตริง URI ของ OAuth 2.0 ที่มีชื่อแอป Google Workspace, ประเภทข้อมูลที่เข้าถึง และระดับการเข้าถึง

ขอบเขตที่ไม่ละเอียดอ่อน

โค้ดขอบเขต คำอธิบาย
https://www.googleapis.com/auth/chat.bot อนุญาตให้แอป Chat ดูแชทและส่งข้อความ มอบสิทธิ์เข้าถึงฟีเจอร์ทั้งหมดที่ใช้ได้กับแอป Chat

ขอบเขตที่ละเอียดอ่อน

โค้ดขอบเขต คำอธิบาย
https://www.googleapis.com/auth/chat.spaces สร้างการสนทนาและพื้นที่ทำงาน ตลอดจนดูหรืออัปเดตข้อมูลเมตา (รวมถึงการตั้งค่าประวัติ) ใน Chat
https://www.googleapis.com/auth/chat.spaces.create สร้างการสนทนาใหม่ใน Chat
https://www.googleapis.com/auth/chat.spaces.readonly ดูแชทและพื้นที่ทำงานใน Chat
https://www.googleapis.com/auth/chat.memberships ดู เพิ่ม และนำสมาชิกออกจากการสนทนาใน Chat
https://www.googleapis.com/auth/chat.memberships.app เพิ่มและนำตัวเองออกจากการสนทนาใน Google Chat
https://www.googleapis.com/auth/chat.memberships.readonly ดูสมาชิกในการสนทนาใน Chat
https://www.googleapis.com/auth/chat.messages.create เขียนและส่งข้อความใน Chat
https://www.googleapis.com/auth/chat.messages.reactions ดู เพิ่ม และลบความรู้สึกที่มีต่อข้อความใน Chat
https://www.googleapis.com/auth/chat.messages.reactions.create เพิ่มความรู้สึกที่มีต่อข้อความใน Chat
https://www.googleapis.com/auth/chat.messages.reactions.readonly ดูความรู้สึกที่มีต่อข้อความใน Chat

ขอบเขตที่จำกัด

โค้ดขอบเขต คำอธิบาย
https://www.googleapis.com/auth/chat.delete ลบการสนทนาและพื้นที่ทำงาน รวมถึงยกเลิกสิทธิ์เข้าถึงไฟล์ที่เกี่ยวข้องใน Chat
https://www.googleapis.com/auth/chat.messages ดู เขียน ส่ง อัปเดต และลบข้อความ รวมถึงเพิ่ม ดู และลบความรู้สึกที่มีต่อข้อความ
https://www.googleapis.com/auth/chat.messages.readonly ดูข้อความและความรู้สึกใน Chat

ขอบเขตในตารางก่อนหน้านี้ระบุถึงความละเอียดอ่อนตามคำจำกัดความต่อไปนี้

หากแอปต้องมีสิทธิ์เข้าถึง Google API อื่นๆ คุณเพิ่มขอบเขตเหล่านั้นได้ด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขต Google API ได้ที่การใช้ OAuth 2.0 เพื่อเข้าถึง Google API

ดูข้อมูลเพิ่มเติมเกี่ยวกับขอบเขตสำหรับ Google Workspace API ได้ที่กำหนดค่าหน้าจอขอความยินยอม OAuth และเลือกขอบเขต

ประเภทของการตรวจสอบสิทธิ์ที่จำเป็น

แอป Chat ตรวจสอบสิทธิ์และให้สิทธิ์ด้วย Chat API ได้ 2 วิธี ได้แก่ ข้อมูลเข้าสู่ระบบของผู้ใช้หรือบัญชีบริการ

แอป Chat จะเข้าถึงข้อมูลผู้ใช้และดำเนินการในนามของผู้ใช้ได้ด้วยการให้สิทธิ์ข้อมูลเข้าสู่ระบบของผู้ใช้ ขอบเขต OAuth จะระบุข้อมูลและการดำเนินการที่ได้รับอนุญาต แต่แอป Chat เหล่านี้จะไม่สามารถเผยแพร่แบบสาธารณะได้ ดูข้อมูลเพิ่มเติมได้ที่เผยแพร่แอป Google Chat

การให้สิทธิ์แอปจะทำให้แอป Chat เข้าถึง API ในแบบแอปโดยใช้ข้อมูลเข้าสู่ระบบบัญชีบริการ การให้สิทธิ์แอปจะใช้ขอบเขตการให้สิทธิ์ chat.bot เสมอ

หากคุณเป็นผู้ดูแลระบบโดเมน คุณสามารถให้การมอบสิทธิ์ทั่วทั้งโดเมนเพื่อให้สิทธิ์บัญชีบริการของแอปพลิเคชันในการเข้าถึงข้อมูลของผู้ใช้โดยไม่ต้องขอคำยินยอมจากผู้ใช้แต่ละคน หลังจากกำหนดค่าการมอบสิทธิ์ทั่วทั้งโดเมนแล้ว คุณจะเรียก API โดยใช้บัญชีบริการเพื่อแอบอ้างเป็นบัญชีผู้ใช้ได้ แม้ว่าจะใช้บัญชีบริการในการตรวจสอบสิทธิ์ แต่การมอบสิทธิ์ทั่วทั้งโดเมนจะแอบอ้างเป็นผู้ใช้ และจะถือว่าเป็นการตรวจสอบสิทธิ์ผู้ใช้ ส่วนฟังก์ชันที่ต้องมีการตรวจสอบสิทธิ์ผู้ใช้จะใช้การมอบสิทธิ์ทั่วทั้งโดเมนได้

เมื่อตัดสินใจว่าจะใช้ข้อมูลเข้าสู่ระบบประเภทใดสำหรับคำขอ API หนึ่งๆ โปรดทราบว่าเมธอด API บางวิธีรองรับข้อมูลเข้าสู่ระบบบางประเภทเท่านั้น หากเมธอด API รองรับข้อมูลเข้าสู่ระบบทั้ง 2 ประเภท ประเภทของข้อมูลเข้าสู่ระบบที่ใช้ในการเรียกใช้จะส่งผลต่อผลลัพธ์ที่แสดง ดังนี้

  • การให้สิทธิ์แอปจะแสดงเฉพาะทรัพยากรที่แอปเข้าถึงได้เท่านั้น
  • เมื่อมีการให้สิทธิ์ผู้ใช้ วิธีการจะแสดงทรัพยากรที่ผู้ใช้เข้าถึงได้ใน UI ของ Chat เท่านั้น

ตัวอย่างเช่น การเรียกใช้เมธอด ListSpaces ที่มีการให้สิทธิ์แอปจะแสดงผลรายการพื้นที่ทำงานที่แอปเป็นสมาชิก การเรียก ListSpaces พร้อมการให้สิทธิ์ผู้ใช้จะแสดงรายชื่อพื้นที่ทำงานที่ผู้ใช้เป็นสมาชิก ในทางปฏิบัติ แอปอาจใช้การให้สิทธิ์ทั้ง 2 ประเภทเมื่อเรียกใช้ Chat API โดยขึ้นอยู่กับฟังก์ชันการทำงานที่คุณต้องการ

สำหรับการเรียก Chat API แบบไม่พร้อมกัน

ตารางต่อไปนี้แสดงเมธอด Chat API และขอบเขตการให้สิทธิ์ที่รองรับ

วิธีการ รองรับการตรวจสอบสิทธิ์ผู้ใช้ รองรับการตรวจสอบสิทธิ์แอป ขอบเขตการให้สิทธิ์ที่รองรับ
พื้นที่ทำงาน  
สร้างพื้นที่ทำงาน
  • chat.spaces.create
  • chat.spaces
ตั้งค่าพื้นที่ทำงาน
  • chat.spaces.create
  • chat.spaces
รับพื้นที่ทำงาน เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.spaces.readonly
  • chat.spaces
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
แสดงพื้นที่ทำงาน เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.spaces.readonly
  • chat.spaces
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
อัปเดตพื้นที่ทำงาน
  • chat.spaces
ลบพื้นที่ทำงาน
  • chat.delete
ค้นหาข้อความส่วนตัว เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.spaces.readonly
  • chat.spaces
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
สมาชิก  
สร้างสมาชิก
  • chat.memberships
  • chat.memberships.app
สมัครเป็นสมาชิก เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.memberships.readonly
  • chat.memberships
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
สมาชิกในรายการ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.memberships.readonly
  • chat.memberships
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
ลบสมาชิก
  • chat.memberships
  • chat.memberships.app
ข้อความ  
สร้างข้อความ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.messages.create
  • chat.messages
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
รับข้อความ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.messages.readonly
  • chat.messages
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
แสดงข้อความ
  • chat.messages.readonly
  • chat.messages
อัปเดตข้อความ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.messages
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
ลบข้อความ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.messages
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
การแสดงความรู้สึก  
สร้างความรู้สึก
  • chat.messages.reactions.create
  • chat.messages.reactions
  • chat.messages
ระบุความรู้สึก
  • chat.messages.reactions.readonly
  • chat.messages.reactions
  • chat.messages.readonly
  • chat.messages
ลบความรู้สึก
  • chat.messages.reactions
  • chat.messages
สื่อและไฟล์แนบ  
อัปโหลดสื่อเป็นไฟล์แนบ
  • chat.messages.create
  • chat.messages
ดาวน์โหลดสื่อ เมื่อใช้การตรวจสอบสิทธิ์ผู้ใช้ ให้ทำดังนี้
  • chat.messages.readonly
  • chat.messages
เมื่อใช้การตรวจสอบสิทธิ์แอป
  • chat.bot
รับไฟล์แนบของข้อความ
  • chat.bot

สำหรับเหตุการณ์การโต้ตอบกับแอป Chat

ตารางต่อไปนี้แสดงวิธีทั่วไปที่ผู้ใช้โต้ตอบกับแอป Chat และระบุว่าจําเป็นต้องหรือรองรับการตรวจสอบสิทธิ์หรือไม่

สถานการณ์ ไม่ต้องมีการตรวจสอบสิทธิ์ รองรับการตรวจสอบสิทธิ์ผู้ใช้ รองรับการตรวจสอบสิทธิ์แอป
รับข้อความจาก:
เหตุการณ์การโต้ตอบกับแอปใน Chat
โค้ดเรียกกลับของ Apps Script
Pub/Sub ของ Google Cloud
ตอบกลับข้อความ ดังนี้
แบบซิงโครนัสโดยใช้เหตุการณ์การโต้ตอบในแอป Chat
แบบซิงโครนัสโดยใช้ค่าการเรียกกลับของ Apps Script
ส่งข้อความใหม่:
ใช้เว็บฮุคขาเข้า