หน้านี้อธิบายวิธีตั้งค่าเว็บฮุคเพื่อส่งข้อความแบบไม่พร้อมกันไปยังพื้นที่ทำงานใน Chat โดยใช้ทริกเกอร์ภายนอก ตัวอย่างเช่น คุณสามารถกำหนดค่าแอปพลิเคชันการตรวจสอบเพื่อแจ้งให้บุคลากรที่ปฏิบัติหน้าที่ทราบใน Chat เมื่อเซิร์ฟเวอร์ล่ม หากต้องการส่งข้อความแบบพร้อมกัน ด้วยแอป Chat โปรดดูหัวข้อ ส่งข้อความ
การออกแบบสถาปัตยกรรมประเภทนี้จะทำให้ผู้ใช้โต้ตอบกับเว็บฮุคหรือแอปพลิเคชันภายนอกที่เชื่อมต่อไม่ได้เนื่องจากการสื่อสารเป็นแบบทางเดียว เว็บฮุคไม่ใช่การสนทนา จึงไม่สามารถตอบกลับหรือรับข้อความจากผู้ใช้หรือ เหตุการณ์การโต้ตอบของแอป Chat ได้ หากต้องการตอบกลับข้อความ ให้สร้างแอป Chat แทนเว็บฮุค
แม้ว่าเว็บฮุคจะไม่ใช่แอป Chat ในทางเทคนิค (เว็บฮุคเชื่อมต่อแอปพลิเคชันโดยใช้คำขอ HTTP มาตรฐาน) แต่หน้านี้จะเรียกว่าแอป Chat เพื่อให้เข้าใจง่าย เว็บฮุคแต่ละรายการจะทำงานในพื้นที่ทำงานใน Chat ที่ลงทะเบียนไว้เท่านั้น เว็บฮุคขาเข้าจะทำงานในข้อความส่วนตัว แต่จะทำงานได้ก็ต่อเมื่อ ผู้ใช้ทุกคนเปิดใช้ แอป Chat คุณไม่สามารถเผยแพร่เว็บฮุคไปยัง Google Workspace Marketplace ได้
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของเว็บฮุคที่เชื่อมต่อกับ Chat
ในแผนภาพก่อนหน้า แอป Chat มีโฟลว์ข้อมูลดังนี้
- ตรรกะของแอป Chat จะรับข้อมูลจากบริการของบุคคลที่สามภายนอก เช่น ระบบการจัดการโปรเจ็กต์หรือเครื่องมือออกตั๋ว
- ตรรกะของแอป Chat จะโฮสต์อยู่ในระบบคลาวด์หรือระบบภายในองค์กรที่สามารถส่งข้อความได้โดยใช้ URL ของเว็บฮุคไปยังพื้นที่ทำงานใน Chat ที่เฉพาะเจาะจง
- ผู้ใช้สามารถรับข้อความจากแอป Chat ในพื้นที่ทำงานใน Chat ที่เฉพาะเจาะจงนั้นได้ แต่จะโต้ตอบกับแอป Chat ไม่ได้
ข้อกำหนดเบื้องต้น
Node.js
- บัญชี Google Workspace Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat องค์กร Google Workspace ต้องอนุญาตให้ผู้ใช้ เพิ่มและใช้เว็บฮุคขาเข้า
- Node.js เวอร์ชัน 14 ขึ้นไป
- เครื่องมือการจัดการแพ็กเกจ npm
- พื้นที่ทำงานใน Google Chat หากต้องการสร้างพื้นที่ทำงานโดยใช้ Google Chat API โปรดดูหัวข้อ สร้างพื้นที่ทำงาน หากต้องการสร้างพื้นที่ทำงานใน Chat, โปรดไปที่ เอกสารประกอบของศูนย์ช่วยเหลือ
Python
- บัญชี Google Workspace Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat องค์กร Google Workspace ต้องอนุญาตให้ผู้ใช้ เพิ่มและใช้เว็บฮุคขาเข้า
- Python เวอร์ชัน 3.6 ขึ้นไป
- เครื่องมือการจัดการแพ็กเกจ pip
ไลบรารี
httplib2หากต้องการติดตั้งไลบรารี ให้เรียกใช้คำสั่งต่อไปนี้ในอินเทอร์เฟซบรรทัดคำสั่งpip install httplib2พื้นที่ทำงานใน Google Chat หากต้องการสร้างพื้นที่ทำงานโดยใช้ Google Chat API โปรดดูหัวข้อ สร้างพื้นที่ทำงาน หากต้องการสร้างพื้นที่ทำงานใน Chat, โปรดไปที่ เอกสารประกอบของศูนย์ช่วยเหลือ
Java
- บัญชี Google Workspace Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat องค์กร Google Workspace ต้องอนุญาตให้ผู้ใช้ เพิ่มและใช้เว็บฮุคขาเข้า
- Java เวอร์ชัน 11 ขึ้นไป
- เครื่องมือการจัดการแพ็กเกจ Maven
- พื้นที่ทำงานใน Google Chat หากต้องการสร้างพื้นที่ทำงานโดยใช้ Google Chat API โปรดดูหัวข้อ สร้างพื้นที่ทำงาน หากต้องการสร้างพื้นที่ทำงานใน Chat, โปรดไปที่ เอกสารประกอบของศูนย์ช่วยเหลือ
Apps Script
- บัญชี Google Workspace Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat องค์กร Google Workspace ต้องอนุญาตให้ผู้ใช้ เพิ่มและใช้เว็บฮุคขาเข้า
- สร้างโปรเจ็กต์ Apps Script แบบสแตนด์อโลน, แล้วเปิดใช้บริการ Chat ขั้นสูง
- พื้นที่ทำงานใน Google Chat หากต้องการสร้างพื้นที่ทำงานโดยใช้ Google Chat API โปรดดูหัวข้อ สร้างพื้นที่ทำงาน หากต้องการสร้างพื้นที่ทำงานใน Chat, โปรดไปที่ เอกสารประกอบของศูนย์ช่วยเหลือ
สร้างเว็บฮุค
หากต้องการสร้างเว็บฮุค ให้ลงทะเบียนเว็บฮุคในพื้นที่ทำงานใน Chat ที่คุณต้องการรับข้อความ แล้วเขียนสคริปต์ที่ส่งข้อความ
ลงทะเบียนเว็บฮุคขาเข้า
- เปิด Chat ในเบราว์เซอร์ คุณกำหนดค่าเว็บฮุคจากแอป Chat บนอุปกรณ์เคลื่อนที่ไม่ได้
- ไปที่พื้นที่ทำงานที่ต้องการเพิ่มเว็บฮุค
- คลิกลูกศรขยายเพิ่มเติม ข้างชื่อพื้นที่ทำงาน แล้วคลิกแอปและการผสานรวม
คลิก เพิ่มเว็บฮุค
ในช่องชื่อ ให้ป้อน
Quickstart Webhookในช่องURL รูปโปรไฟล์ ให้ป้อน
https://developers.google.com/chat/images/chat-product-icon.pngคลิกบันทึก
หากต้องการคัดลอก URL ของเว็บฮุค ให้คลิก เพิ่มเติม แล้วคลิก คัดลอกลิงก์
URL ของเว็บฮุคมีพารามิเตอร์ 2 รายการ ได้แก่
keyซึ่งเป็นค่าทั่วไปที่ใช้ร่วมกัน ระหว่างเว็บฮุค และtokenซึ่งเป็นค่าที่ไม่ซ้ำกันที่คุณต้องเก็บไว้ เป็นความลับเพื่อรักษาความปลอดภัยของเว็บฮุค
เขียนสคริปต์เว็บฮุค
สคริปต์เว็บฮุคตัวอย่างจะส่งข้อความไปยังพื้นที่ทำงานที่ลงทะเบียนเว็บฮุคไว้โดยส่งคำขอ POST ไปยัง URL ของเว็บฮุค Chat API จะตอบกลับด้วยอินสแตนซ์ของ
Message
เลือกภาษาเพื่อดูวิธีสร้างสคริปต์เว็บฮุค
Node.js
สร้างไฟล์ชื่อ
index.jsในไดเรกทอรีที่ทำงานอยู่วางโค้ดต่อไปนี้ใน
index.jsแทนที่ค่าของตัวแปร
urlด้วย URL ของเว็บฮุคที่คุณคัดลอกไว้เมื่อลงทะเบียนเว็บฮุค
Python
สร้างไฟล์ชื่อ
quickstart.pyในไดเรกทอรีที่ทำงานอยู่วางโค้ดต่อไปนี้ใน
quickstart.pyแทนที่ค่าของตัวแปร
urlด้วย URL ของเว็บฮุคที่คุณคัดลอกไว้เมื่อลงทะเบียนเว็บฮุค
Java
สร้างไฟล์ชื่อ
pom.xmlในไดเรกทอรีที่ทำงานอยู่คัดลอกและวางโค้ดต่อไปนี้ใน
pom.xmlสร้างโครงสร้างไดเรกทอรีต่อไปนี้
src/main/javaในไดเรกทอรีที่ทำงานอยู่สร้างไฟล์ชื่อ
App.javaในไดเรกทอรีsrc/main/javaวางโค้ดต่อไปนี้ใน
App.javaแทนที่ค่าของตัวแปร
URLด้วย URL ของเว็บฮุคที่คุณคัดลอกไว้เมื่อลงทะเบียนเว็บฮุค
Apps Script
ไปที่ Apps Script ในเบราว์เซอร์
คลิกโปรเจ็กต์ใหม่
วางโค้ดต่อไปนี้
แทนที่ค่าของตัวแปร
urlด้วย URL ของเว็บฮุคที่คุณคัดลอกไว้เมื่อลงทะเบียนเว็บฮุค
เรียกใช้สคริปต์เว็บฮุค
เรียกใช้สคริปต์ใน CLI โดยใช้คำสั่งต่อไปนี้
Node.js
node index.jsPython
python3 quickstart.pyJava
mvn compile exec:java -Dexec.mainClass=AppApps Script
- คลิกเรียกใช้
เมื่อเรียกใช้โค้ด เว็บฮุคจะส่งข้อความไปยังพื้นที่ทำงานที่คุณลงทะเบียนไว้
เริ่มหรือตอบกลับชุดข้อความ
ระบุ
spaces.messages.thread.threadKeyเป็นส่วนหนึ่งของเนื้อหาคำขอข้อความ ใช้ค่าต่อไปนี้สำหรับthreadKeyโดยขึ้นอยู่กับว่าคุณจะเริ่มหรือตอบกลับชุดข้อความหากจะเริ่มชุดข้อความ ให้ตั้งค่า
threadKeyเป็นสตริงที่กำหนดเอง แต่จดค่านี้ไว้เพื่อโพสต์คำตอบในชุดข้อความหากจะตอบกลับชุดข้อความ ให้ระบุ
threadKeyที่ตั้งไว้เมื่อเริ่มชุดข้อความ เช่น หากต้องการโพสต์คำตอบในชุดข้อความที่ข้อความเริ่มต้นใช้MY-THREADให้ตั้งค่าMY-THREAD
กำหนดลักษณะการทำงานของชุดข้อความหากไม่พบ
threadKeyที่ระบุตอบกลับชุดข้อความหรือเริ่มชุดข้อความใหม่ เพิ่มพารามิเตอร์
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREADลงใน URL ของเว็บฮุค การส่งพารามิเตอร์ URL นี้จะทำให้ Chat ค้นหาชุดข้อความที่มีอยู่โดยใช้threadKeyที่ระบุ หากพบชุดข้อความ ระบบจะโพสต์ข้อความเป็นการตอบกลับชุดข้อความนั้น หากไม่พบชุดข้อความ ระบบจะเริ่มชุดข้อความใหม่ที่สอดคล้องกับthreadKeyนั้นตอบกลับชุดข้อความหรือไม่ทำอะไรเลย เพิ่มพารามิเตอร์
messageReplyOption=REPLY_MESSAGE_OR_FAILลงใน URL ของเว็บฮุค การส่งพารามิเตอร์ URL นี้จะทำให้ Chat ค้นหาชุดข้อความที่มีอยู่โดยใช้threadKeyที่ระบุ หากพบชุดข้อความ ระบบจะโพสต์ข้อความเป็นการตอบกลับชุดข้อความนั้น หากไม่พบชุดข้อความ ระบบจะไม่ส่งข้อความ
ดูข้อมูลเพิ่มเติมได้ที่
messageReplyOption
ตัวอย่างโค้ดต่อไปนี้จะเริ่มหรือตอบกลับชุดข้อความ
Node.js
Python
Java
Apps Script
จัดการข้อผิดพลาด
คำขอเว็บฮุคล้มเหลวได้ด้วยเหตุผลหลายประการ ซึ่งรวมถึง
- คำขอไม่ถูกต้อง
- เว็บฮุคหรือพื้นที่ทำงานที่โฮสต์เว็บฮุคถูกลบ
- ปัญหาที่เกิดขึ้นเป็นระยะๆ เช่น การเชื่อมต่อเครือข่ายหรือขีดจำกัดโควต้า
เมื่อสร้างเว็บฮุค คุณควรจัดการข้อผิดพลาดอย่างเหมาะสมโดยทำดังนี้
- บันทึกการล้มเหลว
- สำหรับข้อผิดพลาดที่อิงตามเวลา โควต้า หรือการเชื่อมต่อเครือข่าย ให้ลองส่งคำขออีกครั้งโดยใช้ Exponential Backoff
- ไม่ทำอะไรเลย ซึ่งเหมาะในกรณีที่การส่งข้อความเว็บฮุคไม่สำคัญ
Google Chat API จะแสดงข้อผิดพลาดเป็น
google.rpc.Status,
ซึ่งรวมถึงข้อผิดพลาด HTTP code ที่ระบุประเภทข้อผิดพลาดที่พบ ได้แก่ ข้อผิดพลาดของไคลเอ็นต์ (ชุด 400) หรือข้อผิดพลาดของเซิร์ฟเวอร์ (ชุด 500) หากต้องการตรวจสอบการแมป HTTP ทั้งหมด โปรดดู
google.rpc.Code
{
"code": 503,
"message": "The service is currently unavailable.",
"status": "UNAVAILABLE"
}
ดูวิธีตีความรหัสสถานะ HTTP และจัดการข้อผิดพลาดได้ที่ ข้อผิดพลาด
ข้อจำกัดและข้อควรพิจารณา
- เมื่อ สร้างข้อความ
ด้วยเว็บฮุคใน Google Chat API การตอบกลับจะไม่มีข้อความทั้งหมด
การตอบกลับจะป้อนข้อมูลเฉพาะช่อง
nameและthread.name - เว็บฮุคอยู่ภายใต้โควต้าต่อพื้นที่ทำงานสำหรับ
spaces.messages.createซึ่งคือ 1 คำขอต่อวินาที โดยใช้ร่วมกันระหว่างเว็บฮุคทั้งหมดในพื้นที่ทำงาน นอกจากนี้ Chat อาจปฏิเสธคำขอเว็บฮุคที่เกิน 1 คำขอต่อวินาทีในพื้นที่ทำงานเดียวกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับโควต้า Chat API ได้ที่ ขีดจำกัดการใช้งาน