หน้านี้จะอธิบายวิธีที่แอป Google Chat รับและตอบสนองต่อการโต้ตอบของผู้ใช้ หรือที่เรียกว่าเหตุการณ์การโต้ตอบของแอป Google Chat
หน้านี้จะอธิบายวิธีดำเนินการต่อไปนี้
- กำหนดค่าแอป Chat ให้รับเหตุการณ์การโต้ตอบ
- ประมวลผลเหตุการณ์การโต้ตอบในโครงสร้างพื้นฐาน
- ตอบสนองต่อเหตุการณ์การโต้ตอบตามความเหมาะสม
ข้อกำหนดเบื้องต้น
แอป Google Chat ที่เปิดใช้ฟีเจอร์แบบอินเทอร์แอกทีฟ หากต้องการสร้างแอป Chat แบบอินเทอร์แอกทีฟ ให้ทําตามการเริ่มต้นใช้งานด่วนอย่างใดอย่างหนึ่งต่อไปนี้ตามสถาปัตยกรรมแอปที่คุณต้องการใช้
- บริการ HTTP กับ Google Cloud Functions
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
ประเภทเหตุการณ์การโต้ตอบ
เหตุการณ์การโต้ตอบกับแอป Google Chat แสดงถึงการดำเนินการใดๆ ที่ผู้ใช้ทําเพื่อเรียกใช้หรือโต้ตอบกับแอป Chat เช่น การ @พูดถึงแอป Chat หรือการเพิ่มแอปลงในพื้นที่ทำงาน
เมื่อผู้ใช้โต้ตอบกับแอป Chat
Google Chat จะส่งเหตุการณ์การโต้ตอบให้แอป Chat
โดยแสดงเป็นประเภท
Event
ใน
Chat API แอป Chat สามารถใช้เหตุการณ์เพื่อประมวลผลการโต้ตอบและตอบกลับด้วยข้อความได้ (ไม่บังคับ)
สําหรับการโต้ตอบของผู้ใช้แต่ละประเภท Google Chat จะส่งเหตุการณ์การโต้ตอบประเภทต่างๆ ซึ่งช่วยให้แอป Chat จัดการเหตุการณ์แต่ละประเภทได้อย่างเหมาะสม ประเภทเหตุการณ์การโต้ตอบจะแสดงโดยใช้ออบเจ็กต์ eventType
ตัวอย่างเช่น Google Chat จะใช้ประเภทกิจกรรม ADDED_TO_SPACE
สำหรับการโต้ตอบที่ผู้ใช้เพิ่มแอป Chat ไปยังพื้นที่ทำงาน เพื่อให้แอป Chat สามารถตอบกลับด้วยข้อความต้อนรับในพื้นที่ทำงานได้ทันที
ตารางต่อไปนี้แสดงการโต้ตอบทั่วไปของผู้ใช้ ประเภทเหตุการณ์การโต้ตอบที่แอป Chat ได้รับ และวิธีที่แอปใน Chat มักตอบสนอง
การโต้ตอบของผู้ใช้ | eventType |
การตอบกลับทั่วไปจากแอป Chat |
---|---|---|
ผู้ใช้เรียกใช้แอป Chat โดยการ @พูดถึงแอปหรือใช้คำสั่งเครื่องหมายทับ | MESSAGE |
แอป Chat จะตอบกลับตามเนื้อหาของข้อความ เช่น แอป Chat จะตอบกลับคําสั่ง /about ด้วยข้อความที่อธิบายงานที่แอป Chat ทําได้ |
ผู้ใช้เพิ่มแอป Chat ไปยังพื้นที่ทำงาน | ADDED_TO_SPACE |
แอป Chat จะส่งข้อความเกี่ยวกับการเริ่มต้นใช้งานที่อธิบายถึงสิ่งที่แอปทำและวิธีที่ผู้ใช้ในพื้นที่ทำงานโต้ตอบกับแอปได้ |
ผู้ใช้นำแอป Chat ออกจากพื้นที่ทำงาน | REMOVED_FROM_SPACE |
แอป Chat จะนำการแจ้งเตือนที่เข้ามาใหม่ที่กำหนดค่าไว้สำหรับพื้นที่ทำงานออก (เช่น การลบเว็บฮุค) และล้างที่จัดเก็บข้อมูลภายใน |
ผู้ใช้คลิกปุ่มบนการ์ดจากข้อความ กล่องโต้ตอบ หรือหน้าแรกของแอป Chat | CARD_CLICKED |
แอป Chat จะประมวลผลและจัดเก็บข้อมูลทั้งหมดที่ผู้ใช้ส่งมา หรือส่งการ์ดอื่นคืน |
ผู้ใช้เปิดหน้าแรกของแอป Chat โดยคลิกแท็บหน้าแรกในข้อความแบบ 1:1 | APP_HOME |
แอป Chat จะแสดงการ์ดแบบคงที่หรือแบบอินเทอร์แอกทีฟจากหน้าแรก |
ผู้ใช้ส่งแบบฟอร์มจากหน้าแรกของแอป Chat | SUBMIT_FORM |
แอป Chat จะประมวลผลและจัดเก็บข้อมูลทั้งหมดที่ผู้ใช้ส่งมา หรือส่งการ์ดอื่นคืน |
หากต้องการดูเหตุการณ์การโต้ตอบที่รองรับทั้งหมด โปรดดูเอกสารอ้างอิง EventType
เหตุการณ์การโต้ตอบจากกล่องโต้ตอบ
หากแอป Chat เปิดกล่องโต้ตอบ เหตุการณ์การโต้ตอบจะมีข้อมูลเพิ่มเติมต่อไปนี้ที่คุณสามารถใช้ประมวลผลคำตอบ
- ตั้งค่า
isDialogEvent
เป็นtrue
DialogEventType
จะชี้แจงว่าการโต้ตอบทริกเกอร์ให้กล่องโต้ตอบเปิดขึ้น ส่งข้อมูลจากกล่องโต้ตอบ หรือปิดกล่องโต้ตอบ
ตารางต่อไปนี้แสดงการโต้ตอบทั่วไปกับกล่องโต้ตอบ ประเภทเหตุการณ์ของกล่องโต้ตอบที่เกี่ยวข้อง และคำอธิบายวิธีที่แอปรับแชทมักตอบสนอง
การโต้ตอบของผู้ใช้กับกล่องโต้ตอบ | ประเภทเหตุการณ์ของกล่องโต้ตอบ | การตอบสนองตามปกติ |
---|---|---|
ผู้ใช้เรียกใช้คําขอกล่องโต้ตอบ เช่น ใช้คำสั่งเครื่องหมายทับหรือคลิกปุ่มจากข้อความ | REQUEST_DIALOG |
แอป Chat จะเปิดกล่องโต้ตอบ |
ผู้ใช้ส่งข้อมูลในกล่องโต้ตอบโดยการคลิกปุ่ม | SUBMIT_DIALOG |
แอป Chat จะไปยังกล่องโต้ตอบอื่นหรือปิดกล่องโต้ตอบเพื่อสิ้นสุดการโต้ตอบ |
ผู้ใช้ออกหรือปิดกล่องโต้ตอบก่อนที่จะส่งข้อมูล | CANCEL_DIALOG |
(ไม่บังคับ) แอป Chat จะตอบกลับด้วยข้อความใหม่ หรืออัปเดตข้อความหรือการ์ดที่ผู้ใช้เปิดกล่องโต้ตอบได้ |
ดูข้อมูลเพิ่มเติมได้ที่เปิดกล่องโต้ตอบแบบอินเทอร์แอกทีฟ
รับเหตุการณ์การโต้ตอบกับแอป Chat
ส่วนนี้จะอธิบายวิธีรับและประมวลผลเหตุการณ์การโต้ตอบสําหรับแอปแชท
กำหนดค่าแอป Chat ให้รับเหตุการณ์การโต้ตอบ
แอป Chat บางแอปเป็นแบบอินเทอร์แอกทีฟ ตัวอย่างเช่น เว็บฮุคขาเข้าจะส่งได้เฉพาะข้อความขาออกและตอบกลับผู้ใช้ไม่ได้ หากกำลังสร้างแอปแชทแบบอินเทอร์แอกทีฟ คุณต้องเลือกปลายทางที่ช่วยให้แอปแชทรับ ประมวลผล และตอบสนองต่อเหตุการณ์การโต้ตอบได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบแอป Chat ได้ที่สถาปัตยกรรมการติดตั้งใช้งานแอป Chat
สําหรับฟีเจอร์แบบอินเทอร์แอกทีฟแต่ละรายการที่ต้องการสร้าง คุณต้องอัปเดตการกําหนดค่าใน Chat API เพื่อให้ Google Chat ส่งเหตุการณ์การโต้ตอบที่เกี่ยวข้องไปยังแอป Chat ได้
ในคอนโซล Google Cloud ให้ไปที่หน้า Chat API แล้วคลิกหน้าการกําหนดค่า
ในส่วนฟีเจอร์แบบอินเทอร์แอกทีฟ ให้ตรวจสอบการตั้งค่าและอัปเดตตามฟีเจอร์ที่ต้องการสร้าง
ช่อง คำอธิบาย ฟังก์ชันการทำงาน ต้องระบุ ชุดช่องที่กำหนดวิธีที่แอปใน Chat จะโต้ตอบกับผู้ใช้ - รับข้อความแบบ 1:1: ผู้ใช้สามารถค้นหาและส่งข้อความถึงแอป Chat ได้โดยตรงใน Google Chat
- เข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม: ผู้ใช้สามารถเพิ่มแอป Chat ในพื้นที่ทำงานและการสนทนากลุ่ม
การตั้งค่าการเชื่อมต่อ ต้องระบุ ปลายทางสําหรับแอป Chat ซึ่งเป็นหนึ่งในรายการต่อไปนี้ - URL ปลายทางของ HTTP: ปลายทาง HTTPS ที่โฮสต์การใช้งานแอป Chat
- Apps Script: รหัสการทำให้ใช้งานได้สำหรับโปรเจ็กต์ Apps Script ที่ใช้แอป Chat
- ชื่อหัวข้อ Cloud Pub/Sub: หัวข้อ Pub/Sub ที่แอป Chat สมัครรับข้อมูลในฐานะปลายทาง
- Dialogflow: ลงทะเบียนแอป Chat ที่มีการผสานรวม Dialogflow โปรดดูข้อมูลเพิ่มเติมที่หัวข้อสร้างแอป Google Chat ของ Dialogflow ที่เข้าใจภาษาธรรมชาติ
คำสั่งเครื่องหมายทับ ไม่บังคับ คําสั่งที่แสดงต่อผู้ใช้ภายใน Google Chat ได้ อนุญาตให้ผู้ใช้เห็นการดำเนินการหลักสำหรับแอป Chat ภายใน Google Chat และเลือกการดำเนินการที่ต้องการโต้ตอบ โปรดดูข้อมูลเพิ่มเติมที่หัวข้อตอบกลับคําสั่งเครื่องหมายทับเป็นแอป Chat ตัวอย่างลิงก์ ไม่บังคับ รูปแบบ URL ที่แอป Chat จดจำและแสดงเนื้อหาเพิ่มเติมเมื่อผู้ใช้ส่งลิงก์ ดูข้อมูลเพิ่มเติมได้ที่แสดงตัวอย่างลิงก์ ระดับการแชร์ ไม่บังคับ ผู้ใช้สูงสุด 5 คนหรือ Google Groups อย่างน้อย 1 กลุ่มที่สามารถดูและติดตั้งแอป Chat ของคุณได้ ใช้ช่องนี้เพื่อทดสอบแอป Chat หรือแชร์แอป Chat กับทีม ดูข้อมูลเพิ่มเติมได้ที่ทดสอบฟีเจอร์แบบอินเทอร์แอกทีฟ คลิกบันทึก เมื่อบันทึกการกำหนดค่าแอป Chat แล้ว แอป Chat จะพร้อมให้บริการแก่ผู้ใช้ที่ระบุในองค์กร Google Workspace
ตอนนี้แอป Chat ได้รับการกําหนดค่าให้รับเหตุการณ์การโต้ตอบจาก Google Chat แล้ว
จัดการการเรียก HTTP ที่พยายามอีกครั้งไปยังบริการของคุณ
หากคำขอ HTTPS สำหรับบริการของคุณไม่สำเร็จ (เช่น หมดเวลา เครือข่ายไม่ทำงานชั่วคราว หรือรหัสสถานะ HTTPS ที่ไม่ใช่ 2xx) Google Chat อาจพยายามนำส่งอีกครั้ง 2-3 ครั้งภายใน 2-3 นาที (แต่เราไม่รับประกัน) ดังนั้นแอป Chat อาจได้รับข้อความเดิม 2-3 ครั้งในบางสถานการณ์ หากคำขอดำเนินการเสร็จสมบูรณ์แต่แสดงผลเพย์โหลดข้อความที่ไม่ถูกต้อง Google Chat จะไม่ลองส่งคำขออีกครั้ง
ประมวลผลหรือตอบสนองต่อเหตุการณ์การโต้ตอบ
ส่วนนี้จะอธิบายวิธีที่แอป Google Chat ประมวลผลและตอบสนองต่อเหตุการณ์การโต้ตอบ
หลังจากแอป Chat ได้รับเหตุการณ์การโต้ตอบจาก Google Chat แล้ว แอปจะตอบสนองได้หลายวิธี ในหลายกรณี แอปแชทแบบอินเทอร์แอกทีฟจะตอบกลับผู้ใช้ด้วยข้อความ แอป Google Chat ยังค้นหาข้อมูลบางอย่างจากแหล่งข้อมูล บันทึกข้อมูลเหตุการณ์การโต้ตอบ หรือข้อมูลอื่นๆ อีกมากมายได้ด้วย โดยหลักแล้วคือลักษณะการทำงานของการประมวลผลนี้ คือสิ่งที่กำหนดแอป Google Chat
หากต้องการตอบกลับแบบซิงค์กัน แอป Chat จะต้องตอบกลับภายใน 30 วินาที และการตอบกลับต้องโพสต์ในพื้นที่ทำงานที่มีการโต้ตอบ ไม่เช่นนั้นแอป Chat จะตอบกลับแบบไม่พร้อมกัน
สำหรับเหตุการณ์การโต้ตอบแต่ละรายการ แอปใน Chat จะได้รับเนื้อหาของคำขอ ซึ่งก็คือเพย์โหลด JSON ที่แสดงเหตุการณ์นั้น คุณสามารถใช้ข้อมูลดังกล่าวเพื่อประมวลผลคำตอบได้ ดูตัวอย่างเพย์โหลดเหตุการณ์ได้ที่ประเภทเหตุการณ์การโต้ตอบของแอป Chat
แผนภาพต่อไปนี้แสดงวิธีที่แอป Google Chat ประมวลผลหรือตอบสนองต่อเหตุการณ์การโต้ตอบประเภทต่างๆ โดยทั่วไป
ตอบกลับแบบเรียลไทม์
เหตุการณ์การโต้ตอบช่วยให้แอปแชทตอบสนองแบบเรียลไทม์หรือพร้อมกัน การตอบกลับแบบซิงค์ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์
หากต้องการตอบกลับแบบเรียลไทม์ แอป Chat จะต้องแสดงผลออบเจ็กต์ Message
หากต้องการตอบกลับด้วยข้อความในพื้นที่ทำงาน ออบเจ็กต์ Message
อาจมีออบเจ็กต์ text
, cardsV2
และ accessoryWidgets
หากต้องการใช้กับคำตอบประเภทอื่นๆ โปรดดูคำแนะนำต่อไปนี้
ตอบกลับด้วยข้อความ
ในตัวอย่างนี้ แอป Chat จะสร้างและส่ง SMS ทุกครั้งที่มีการเพิ่มแอปลงในพื้นที่ทำงาน ดูแนวทางปฏิบัติแนะนำเกี่ยวกับการเริ่มต้นใช้งานผู้ใช้ได้ที่หัวข้อแนะนำแอป Chat ให้แก่ผู้ใช้
หากต้องการส่ง SMS เมื่อผู้ใช้เพิ่มแอป Chat ของคุณลงในพื้นที่ทำงาน แอป Chat จะตอบสนองต่อADDED_TO_SPACE
เหตุการณ์การโต้ตอบ หากต้องการตอบกลับเหตุการณ์การโต้ตอบ ADDED_TO_SPACE
ด้วย SMS ให้ใช้โค้ดต่อไปนี้
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
ตัวอย่างโค้ดแสดงข้อความต่อไปนี้
ตอบสนองแบบอะซิงโครนัส
บางครั้งแอป Chat ต้องตอบสนองต่อเหตุการณ์การโต้ตอบหลังจากผ่านไป 30 วินาทีหรือทำงานนอกพื้นที่ทำงานที่สร้างเหตุการณ์การโต้ตอบ เช่น แอปแชทอาจต้องตอบกลับผู้ใช้หลังจากทำงานที่ใช้เวลานานเสร็จแล้ว ในกรณีนี้ แอป Chat จะตอบกลับแบบไม่พร้อมกันได้โดยเรียกใช้ Google Chat API
หากต้องการสร้างข้อความโดยใช้ Chat API โปรดดูสร้างข้อความ ดูคำแนะนำเกี่ยวกับการใช้เมธอด Chat API เพิ่มเติมได้ในภาพรวมของ Chat API
หัวข้อที่เกี่ยวข้อง
- ส่งข้อความ
- เปิดกล่องโต้ตอบแบบอินเทอร์แอกทีฟ
- ลิงก์ตัวอย่าง
- อ่านข้อมูลแบบฟอร์มที่ผู้ใช้ป้อนในการ์ด
- ตอบกลับคำสั่งเครื่องหมายทับ
- สร้างหน้าแรกสำหรับแอป Chat
- ยืนยันคําขอจาก Chat
- ทดสอบฟีเจอร์แบบอินเทอร์แอกทีฟสำหรับแอป Google Chat