หน้านี้อธิบายวิธีเชื่อมต่อแอป Google Chat กับบริการหรือเครื่องมือที่อยู่นอก Google Chat แม้ว่าแอป Chat จะมีประสิทธิภาพในตัวของมันเอง แต่แอปเหล่านี้มักจะทำงานร่วมกับระบบอื่นๆ และต้องใช้แอปพลิเคชันที่ทำงานร่วมกันเพื่อเชื่อมต่อบัญชี อนุญาตการเข้าถึงข้อมูล แสดงข้อมูลเพิ่มเติม หรือกำหนดค่าการตั้งค่าของผู้ใช้
ข้อกำหนดเบื้องต้น
แอป Google Chat ที่กำหนดค่าให้รับและตอบสนองต่อ เหตุการณ์การโต้ตอบ หากต้องการสร้างแอป Chat แบบอินเทอร์แอกทีฟ ให้ทำตามคู่มือเริ่มต้นฉบับย่อใดฉบับหนึ่งต่อไปนี้โดยอิงตาม สถาปัตยกรรมแอปที่คุณต้องการใช้:- บริการ HTTP กับ Google Cloud Functions
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
ขอการกำหนดค่าแอป Chat จากผู้ใช้
หากการดำเนินการตามคำขอต้องมีการกำหนดค่าเพิ่มเติมที่ไม่สามารถทำได้โดยตรงในแอป Chat ให้ส่งคืน URL การกำหนดค่าให้ผู้ใช้เป็นส่วนหนึ่งของการตอบกลับปกติ หรือแสดง URL แบบส่วนตัวในรูปแบบต่อไปนี้
{
"actionResponse": {
"type": "REQUEST_CONFIG",
"url": "CONFIGURATION_URL"
}
}
ซึ่งจะบอกให้ Google Chat แสดงข้อความแจ้งแบบส่วนตัวต่อผู้ใช้ โดย CONFIGURATION_URL คือลิงก์ที่ผู้ใช้จะเข้าชมเพื่อทำการตรวจสอบสิทธิ์ การให้สิทธิ์ หรือการกำหนดค่าเพิ่มเติม การตอบกลับ REQUEST_CONFIG จะใช้ร่วมกับข้อความตอบกลับปกติไม่ได้ ระบบจะละเว้นข้อความ การ์ด หรือแอตทริบิวต์อื่นๆ
ดำเนินการตามคำขอการกำหนดค่า
เหตุการณ์การโต้ตอบ
MESSAGE, ADDED_TO_SPACE, และ APP_COMMAND ทุกรายการ
ที่แอป Chat ได้รับจะมีช่อง
configCompleteRedirectUrl ด้วย คุณต้องเข้ารหัส URL นี้ใน URL การกำหนดค่าเพื่อใช้เมื่อกระบวนการเสร็จสมบูรณ์ การเปลี่ยนเส้นทางไปยัง URL นี้จะส่งสัญญาณไปยัง Google Chat ว่าคำขอการกำหนดค่าเสร็จสมบูรณ์แล้ว
เมื่อแอป Chat เริ่มทำงาน โฟลว์จะขึ้นอยู่กับข้อความที่ได้รับ แอป Chat ควรตอบกลับด้วยข้อความโดยไม่ต้องมีการกำหนดค่าเพิ่มเติมเมื่อได้รับข้อความ เช่น @app help
เมื่อระบบเปลี่ยนเส้นทางผู้ใช้ไปยัง configCompleteRedirectUrl ที่ระบุไว้ในข้อความเดิมได้สำเร็จ Google Chat จะทำตามขั้นตอนต่อไปนี้
- ลบข้อความแจ้งที่แสดงต่อผู้ใช้ที่เริ่มการดำเนินการ
- เปลี่ยนข้อความเดิมเป็นสาธารณะเพื่อให้สมาชิกคนอื่นๆ ในพื้นที่ทำงานเห็น
- ส่งข้อความเดิมไปยังแอป Chat เดียวกันอีกครั้ง
การเข้าชม configCompleteRedirectUrl จะส่งผลต่อข้อความของผู้ใช้เพียงข้อความเดียว
หากผู้ใช้พยายามส่งข้อความไปยังแอป Chat หลายครั้งและได้รับข้อความแจ้งหลายรายการ การคลิกข้อความแจ้งหนึ่งๆ และทำตามกระบวนการตรวจสอบสิทธิ์และการกำหนดค่าให้เสร็จสมบูรณ์จะส่งผลต่อข้อความนั้นๆ เท่านั้น ข้อความอื่นๆ จะไม่เปลี่ยนแปลง
เมื่อส่งเหตุการณ์การโต้ตอบ MESSAGE อีกครั้งด้วยวิธีนี้ เหตุการณ์ที่ส่งอีกครั้งควรเหมือนกับเหตุการณ์เดิม อย่างไรก็ตาม อาจมีบางกรณีที่เหตุการณ์การโต้ตอบ MESSAGE อาจแตกต่างกัน เช่น เมื่อข้อความกล่าวถึงทั้งแอป Chat A และแอป Chat B ผู้ใช้จะแก้ไขข้อความได้หากแอป Chat A ตอบกลับด้วยข้อความปกติก่อนที่จะตรวจสอบสิทธิ์กับแอป Chat B ในกรณีนี้ แอป Chat B จะได้รับข้อความที่แก้ไขแล้วหลังจากที่ผู้ใช้ทำการตรวจสอบสิทธิ์และการกำหนดค่าเสร็จสมบูรณ์
ตรวจสอบสิทธิ์ผู้ใช้ Chat นอก Chat
ในบางกรณี เช่น การขอการให้สิทธิ์ OAuth สำหรับ API แอปของคุณต้องลิงก์ไปยัง URL นอก Chat ขณะที่ยังคงข้อมูลประจำตัวของผู้ใช้ไว้ วิธีที่ดีที่สุดในการระบุตัวตนผู้ใช้ในกรณีเหล่านี้คือการป้องกันแอปปลายทางด้วย การลงชื่อเข้าใช้ด้วยบัญชี Google
ใช้
โทเค็นข้อมูลประจำตัว
ที่ออกให้ระหว่างการลงชื่อเข้าใช้เพื่อรับรหัสผู้ใช้ การอ้างสิทธิ์ sub จะมีรหัสเฉพาะของผู้ใช้และสามารถเชื่อมโยงกับรหัสผู้ใช้จาก Google Chat ได้
แม้ว่ารหัสทั้ง 2 จะไม่เหมือนกันทุกประการ แต่ก็สามารถบังคับให้เหมือนกันได้ หากต้องการแปลงประเภทค่าของการอ้างสิทธิ์ sub เป็น users/{user} ของ Google Chat ให้เพิ่มคำนำหน้า users/ ลงในค่า เช่น ค่าการอ้างสิทธิ์ 123 จะเทียบเท่า
กับชื่อผู้ใช้ users/123 ในข้อความที่ส่งไปยังแอป Chat
หัวข้อที่เกี่ยวข้อง
- รับและตอบสนองต่อการโต้ตอบของผู้ใช้
- ตัวอย่างแอป MyProfile ใช้โทเค็นข้อมูลประจำตัวจากการตอบกลับการลงชื่อเข้าใช้ด้วยบัญชี Google เพื่อระบุตัวตน ผู้ใช้