ตรวจสอบสิทธิ์และให้สิทธิ์แอป 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. เรียกใช้ 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 APIs

  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

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

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

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

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