รับและตอบกลับการโต้ตอบของผู้ใช้

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

หน้านี้จะอธิบายวิธีดำเนินการต่อไปนี้

  • กำหนดค่าแอป Chat ให้รับเหตุการณ์การโต้ตอบ
  • ประมวลผลเหตุการณ์การโต้ตอบในโครงสร้างพื้นฐาน
  • ตอบกลับเหตุการณ์การโต้ตอบหากเหมาะสม

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

แอป Google Chat ที่เปิดใช้ฟีเจอร์แบบอินเทอร์แอกทีฟ หากต้องการสร้างแอป Chat แบบอินเทอร์แอกทีฟ ให้ทําตามการเริ่มต้นใช้งานด่วนอย่างใดอย่างหนึ่งต่อไปนี้ตามสถาปัตยกรรมแอปที่คุณต้องการใช้

ประเภทเหตุการณ์การโต้ตอบ

เหตุการณ์การโต้ตอบกับแอป Google Chat แสดงถึงการดำเนินการใดๆ ที่ผู้ใช้ทําเพื่อเรียกใช้หรือโต้ตอบกับแอป Chat เช่น การ @พูดถึงแอป Chat หรือการเพิ่มแอปลงในพื้นที่ทำงาน

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

สําหรับการโต้ตอบของผู้ใช้แต่ละประเภท Google Chat จะส่งเหตุการณ์การโต้ตอบประเภทต่างๆ ซึ่งช่วยให้แอป Chat จัดการเหตุการณ์แต่ละประเภทได้อย่างเหมาะสม ประเภทเหตุการณ์การโต้ตอบจะแสดงโดยใช้ออบเจ็กต์ eventType

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

แอป Chat จะโพสต์ข้อความต้อนรับ
ภาพที่ 1: เมื่อผู้ใช้เพิ่ม แอป Chat ไปยังพื้นที่ทำงาน แอป Chat จะได้รับเหตุการณ์การโต้ตอบADDED_TO_SPACE ที่แอป 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 ได้ที่สถาปัตยกรรมการติดตั้งใช้งานแอป Chat

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

  1. ในคอนโซล Google Cloud ให้ไปที่หน้า Chat API แล้วคลิกหน้าการกําหนดค่า

    ไปที่หน้าการกำหนดค่า Chat API

  2. ในส่วนฟีเจอร์อินเทอร์แอกทีฟ ให้ตรวจสอบการตั้งค่าและอัปเดตตามฟีเจอร์ที่คุณต้องการสร้าง ดังนี้

    ช่อง คำอธิบาย
    ฟังก์ชันการทำงาน ต้องระบุ ชุดของช่องที่ระบุวิธีที่แอปใน 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 กับทีม ดูข้อมูลเพิ่มเติมได้ที่ทดสอบฟีเจอร์แบบอินเทอร์แอกทีฟ
  3. คลิกบันทึก เมื่อบันทึกการกำหนดค่าแอป Chat แล้ว ผู้ใช้ในองค์กร Google Workspace ของคุณจะใช้แอป Chat ได้

ตอนนี้แอป Chat ของคุณได้รับการกำหนดค่าให้รับเหตุการณ์การโต้ตอบจาก Google Chat แล้ว

จัดการคำขอเรียกใช้ HTTP กับบริการของคุณซ้ำ

หากคำขอ HTTPS ไปยังบริการของคุณไม่สำเร็จ (เช่น หมดเวลา เครือข่ายขัดข้องชั่วคราว หรือรหัสสถานะ HTTPS ที่ไม่ใช่ 2xx) Google Chat อาจลองส่งอีกครั้ง 2-3 ครั้งภายในไม่กี่นาที (แต่ก็ไม่อาจรับประกันได้) ด้วยเหตุนี้ แอปแชทจึงอาจได้รับข้อความเดียวกัน 2-3 ครั้งในบางสถานการณ์ หากคำขอดำเนินการเสร็จสมบูรณ์แต่แสดงผลเพย์โหลดข้อความที่ไม่ถูกต้อง Google Chat จะไม่ลองส่งคำขออีกครั้ง

ประมวลผลหรือตอบสนองต่อเหตุการณ์การโต้ตอบ

ส่วนนี้จะอธิบายวิธีที่แอป Google Chat ประมวลผลและตอบสนองต่อเหตุการณ์การโต้ตอบ

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

หากต้องการตอบกลับแบบซิงค์กัน แอป Chat จะต้องตอบกลับภายใน 30 วินาที และการตอบกลับต้องโพสต์ในพื้นที่ทำงานที่มีการโต้ตอบ ไม่เช่นนั้นแอป Chat จะตอบกลับแบบไม่พร้อมกัน

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

แผนภาพต่อไปนี้แสดงวิธีที่แอป Google Chat โดยทั่วไปประมวลผลหรือตอบสนองต่อเหตุการณ์การโต้ตอบประเภทต่างๆ

สถาปัตยกรรมของวิธีที่แอป Google Chat ประมวลผลเหตุการณ์การโต้ตอบ

ตอบกลับแบบเรียลไทม์

เหตุการณ์การโต้ตอบช่วยให้แอปแชทตอบสนองแบบเรียลไทม์หรือพร้อมกัน การตอบกลับแบบซิงค์ไม่จำเป็นต้องมีการตรวจสอบสิทธิ์

หากต้องการตอบกลับแบบเรียลไทม์ แอป Chat จะต้องแสดงผลออบเจ็กต์ Message หากต้องการตอบกลับด้วยข้อความในพื้นที่ทำงาน ออบเจ็กต์ Message อาจมีออบเจ็กต์ text, cardsV2 และ accessoryWidgets หากต้องการใช้กับคำตอบประเภทอื่นๆ โปรดดูคำแนะนำต่อไปนี้

ตอบกลับด้วยข้อความ

ในตัวอย่างนี้ แอป Chat จะสร้างและส่งข้อความ เมื่อใดก็ตามที่มีการเพิ่มข้อความไปยังพื้นที่ทำงาน ดูแนวทางปฏิบัติแนะนำเกี่ยวกับการเริ่มต้นใช้งานผู้ใช้ได้ที่หัวข้อแนะนำแอป 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 อาจต้องตอบกลับผู้ใช้หลังจากทำงานที่ใช้เวลานาน ในกรณีนี้ แอปใน Chat จะตอบกลับแบบไม่พร้อมกันได้ด้วยการเรียกใช้ Google Chat API

หากต้องการสร้างข้อความโดยใช้ Chat API โปรดดูหัวข้อสร้างข้อความ ดูคำแนะนำเกี่ยวกับการใช้เมธอด Chat API เพิ่มเติมได้ในภาพรวมของ Chat API