หน้านี้อธิบายวิธีสร้างแอป Chat โดยใช้ Pub/Sub สถาปัตยกรรมประเภทนี้สำหรับแอป Chat มีประโยชน์ในกรณีที่องค์กรมีไฟร์วอลล์ ซึ่งอาจป้องกันไม่ให้ Chat ส่งข้อความไปยังแอป Chat หรือหากแอป Chat ใช้ Google Workspace Events API อย่างไรก็ตาม สถาปัตยกรรมนี้มีข้อจำกัดต่อไปนี้เนื่องจากแอป Chat เหล่านี้ส่งและรับได้เฉพาะข้อความแบบอะซิงโครนัส
- ใช้กล่องโต้ตอบ ในข้อความไม่ได้ แต่ให้ใช้ข้อความการ์ดแทน
- อัปเดตการ์ดแต่ละใบด้วยการตอบกลับแบบซิงโครนัสไม่ได้ แต่ให้อัปเดต
ข้อความทั้งหมดโดยเรียกใช้เมธอด
patchแทน
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของแอปแชทที่สร้างด้วย Pub/Sub
ในแผนภาพก่อนหน้า ผู้ใช้ที่โต้ตอบกับแอปแชท Pub/Sub จะมีโฟลว์ข้อมูลดังนี้
ผู้ใช้ส่งข้อความใน Chat ไปยังแอปใน Chat ไม่ว่าจะในข้อความส่วนตัวหรือในพื้นที่ Chat หรือมีเหตุการณ์เกิดขึ้นในพื้นที่ Chat ซึ่งแอปใน Chat มีการติดตามที่ใช้งานอยู่
Chat จะส่งข้อความไปยังหัวข้อ Pub/Sub
เซิร์ฟเวอร์แอปพลิเคชันซึ่งเป็นระบบคลาวด์หรือระบบในองค์กรที่มีตรรกะของแอป Chat จะสมัครรับข้อมูลหัวข้อ Pub/Sub เพื่อรับข้อความผ่านไฟร์วอลล์
แอป Chat สามารถเรียกใช้ Chat API เพื่อโพสต์ข้อความแบบไม่พร้อมกันหรือดำเนินการอื่นๆ ได้ (ไม่บังคับ)
ข้อกำหนดเบื้องต้น
เมื่อสร้างแอป Chat คุณต้องยกเลิกการเลือกสร้างแอป Chat นี้เป็นส่วนเสริมของ Google Workspace ในหน้าการกำหนดค่า Chat API ในคอนโซล Google Cloud ดูเผยแพร่แอปไปยัง Google Chat
Java
- บัญชี Google Workspace สำหรับธุรกิจหรือองค์กร ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ โปรดดูยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูสร้างโปรเจ็กต์ Google Cloud
- Java 11 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ Maven
Python
- บัญชี Google Workspace สำหรับธุรกิจหรือองค์กร ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ โปรดดูยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูสร้างโปรเจ็กต์ Google Cloud
- Python 3.6 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ pip
Node.js
- บัญชี Google Workspace สำหรับธุรกิจหรือองค์กร ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ โปรดดูยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูสร้างโปรเจ็กต์ Google Cloud
- Node.js 14 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ npm
-
โปรเจ็กต์ Node.js ที่เริ่มต้นแล้ว หากต้องการเริ่มต้นโปรเจ็กต์ใหม่ ให้สร้างและ
เปลี่ยนไปใช้โฟลเดอร์ใหม่ จากนั้นเรียกใช้คำสั่งต่อไปนี้ในอินเทอร์เฟซบรรทัดคำสั่ง
npm init
ตั้งค่าสภาพแวดล้อม
ก่อนใช้ Google API คุณต้องเปิดใช้ API ในโปรเจ็กต์ Google Cloud คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud เดียวได้ในคอนโซล Google Cloud ให้เปิดใช้ Google Chat API และ Pub/Sub API
ตั้งค่า Pub/Sub
สร้างหัวข้อ Pub/Sub ที่ Chat API สามารถส่งข้อความถึงได้ เราขอแนะนำให้คุณใช้ หัวข้อเดียวต่อแอป Chat
ให้สิทธิ์ Chat ในการเผยแพร่ ไปยังหัวข้อโดยการมอบบทบาทผู้เผยแพร่ Pub/Sub ให้กับบัญชีบริการต่อไปนี้
chat-api-push@system.gserviceaccount.comสร้างบัญชีบริการ สำหรับแอป Chat เพื่อให้สิทธิ์กับ Pub/Sub และ Chat แล้วบันทึกไฟล์คีย์ส่วนตัวลงในไดเรกทอรีการทำงาน
สร้างการสมัครรับข้อมูลแบบดึงข้อมูล ไปยังหัวข้อ
มอบหมายบทบาทผู้ใช้บริการ Pub/Sub ในการสมัครใช้บริการ สำหรับบัญชีบริการที่คุณสร้างไว้ก่อนหน้านี้
เขียนสคริปต์
Java
ใน CLI ให้ระบุข้อมูลเข้าสู่ระบบของบัญชีบริการโดยทำดังนี้
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHใน CLI ให้ระบุรหัสโปรเจ็กต์ Google Cloud ดังนี้
export PROJECT_ID=PROJECT_IDใน CLI ให้ระบุรหัสการสมัครใช้บริการสำหรับ Pub/Sub ที่คุณสร้างไว้ก่อนหน้านี้
export SUBSCRIPTION_ID=SUBSCRIPTION_IDสร้างไฟล์ชื่อ
pom.xmlในไดเรกทอรีการทำงานวางโค้ดต่อไปนี้ในไฟล์
pom.xmlในไดเรกทอรีการทำงาน ให้สร้างโครงสร้างไดเรกทอรี
src/main/javaในไดเรกทอรี
src/main/javaให้สร้างไฟล์ชื่อMain.javaใน
Main.javaให้วางโค้ดต่อไปนี้
Python
ใน CLI ให้ระบุข้อมูลเข้าสู่ระบบของบัญชีบริการโดยทำดังนี้
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHใน CLI ให้ระบุรหัสโปรเจ็กต์ Google Cloud ดังนี้
export PROJECT_ID=PROJECT_IDใน CLI ให้ระบุรหัสการสมัครใช้บริการสำหรับ Pub/Sub ที่คุณสร้างไว้ก่อนหน้านี้
export SUBSCRIPTION_ID=SUBSCRIPTION_IDสร้างไฟล์ชื่อ
requirements.txtในไดเรกทอรีการทำงานวางโค้ดต่อไปนี้ในไฟล์
requirements.txtสร้างไฟล์ชื่อ
app.pyในไดเรกทอรีการทำงานใน
app.pyให้วางโค้ดต่อไปนี้
Node.js
ใน CLI ให้ระบุข้อมูลเข้าสู่ระบบของบัญชีบริการโดยทำดังนี้
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHใน CLI ให้ระบุรหัสโปรเจ็กต์ Google Cloud ดังนี้
export PROJECT_ID=PROJECT_IDใน CLI ให้ระบุรหัสการสมัครใช้บริการสำหรับ Pub/Sub ที่คุณสร้างไว้ก่อนหน้านี้
export SUBSCRIPTION_ID=SUBSCRIPTION_IDสร้างไฟล์ชื่อ
package.jsonในไดเรกทอรีการทำงานวางโค้ดต่อไปนี้ในไฟล์
package.jsonสร้างไฟล์ชื่อ
index.jsในไดเรกทอรีการทำงานใน
index.jsให้วางโค้ดต่อไปนี้
เผยแพร่แอปไปยัง Chat
ในคอนโซล Google Cloud ให้ไปที่เมนู > API และบริการ > API และบริการที่เปิดใช้ > Google Chat API > การกำหนดค่า
กำหนดค่าแอป Chat สำหรับ Pub/Sub โดยทำดังนี้
- ล้างสร้างแอป Chat นี้เป็นส่วนเสริมของ Google Workspace กล่องโต้ตอบจะเปิดขึ้นเพื่อขอให้คุณยืนยัน คลิกปิดใช้ในกล่องโต้ตอบ
- ในส่วนชื่อแอป ให้ป้อน
Quickstart App - ใน URL ของรูปโปรไฟล์ ให้ป้อน
https://developers.google.com/chat/images/quickstart-app-avatar.png - ในคำอธิบาย ให้ป้อน
Quickstart app - ในส่วนฟังก์ชันการทำงาน ให้เลือกเข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม
- ในส่วนการตั้งค่าการเชื่อมต่อ ให้เลือก Cloud Pub/Sub แล้ววางชื่อหัวข้อ Pub/Sub ที่คุณสร้างไว้ก่อนหน้านี้
- ในส่วนระดับการเข้าถึง ให้เลือกทำให้แอป Google Chat นี้พร้อมใช้งานสำหรับบุคคลและกลุ่มที่เฉพาะเจาะจงในโดเมนของคุณ แล้วป้อนอีเมล
- ในส่วนบันทึก ให้เลือกบันทึกข้อผิดพลาดไปยังการบันทึก
คลิกบันทึก
แอปพร้อมรับและตอบกลับข้อความใน Chat แล้ว
เรียกใช้สคริปต์
ใน CLI ให้เปลี่ยนไปที่ไดเรกทอรีการทำงานแล้วเรียกใช้สคริปต์
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
เมื่อเรียกใช้โค้ด แอปพลิเคชันจะเริ่มรับฟังข้อความที่เผยแพร่ ไปยังหัวข้อ Pub/Sub
ทดสอบแอป Chat
หากต้องการทดสอบแอป Chat ให้เปิดพื้นที่ข้อความส่วนตัวด้วย แอป Chat แล้วส่งข้อความโดยทำดังนี้
เปิด Google Chat โดยใช้บัญชี Google Workspace ที่คุณ ระบุเมื่อเพิ่มตัวเองเป็นผู้ทดสอบที่เชื่อถือได้
- คลิก แชทใหม่
- ในช่องเพิ่มบุคคลอย่างน้อย 1 คน ให้พิมพ์ชื่อแอป Chat
เลือกแอป Chat จากผลการค้นหา ข้อความส่วนตัวจะเปิดขึ้น
- ในข้อความส่วนตัวใหม่กับแอป ให้พิมพ์
Helloแล้วกดenter
หากต้องการเพิ่มผู้ทดสอบที่เชื่อถือได้และดูข้อมูลเพิ่มเติมเกี่ยวกับการทดสอบฟีเจอร์แบบอินเทอร์แอกทีฟ โปรดดูทดสอบฟีเจอร์แบบอินเทอร์แอกทีฟสำหรับแอป Google Chat
แก้ปัญหา
เมื่อแอป Google Chat หรือการ์ดแสดงข้อผิดพลาด อินเทอร์เฟซของ Chat จะแสดงข้อความว่า "เกิดข้อผิดพลาด" หรือ "ดำเนินการตามคำขอของคุณไม่ได้" บางครั้ง UI ของ Chat อาจไม่แสดงข้อความแสดงข้อผิดพลาดใดๆ แต่แอปหรือการ์ด Chat อาจให้ผลลัพธ์ที่ไม่คาดคิด เช่น ข้อความในการ์ดอาจไม่ปรากฏ
แม้ว่าข้อความแสดงข้อผิดพลาดอาจไม่แสดงใน UI ของ Chat แต่ข้อความแสดงข้อผิดพลาดและข้อมูลบันทึกที่อธิบายไว้จะช่วยคุณแก้ไขข้อผิดพลาดได้เมื่อเปิดการบันทึกข้อผิดพลาดสำหรับแอป Chat หากต้องการความช่วยเหลือในการดู การแก้ไขข้อบกพร่อง และการแก้ไขข้อผิดพลาด โปรดดู แก้ปัญหาและแก้ไขข้อผิดพลาดของ Google Chat
ล้างข้อมูล
เราขอแนะนำให้คุณลบโปรเจ็กต์ Cloud เพื่อหลีกเลี่ยงการเรียกเก็บเงินจากบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในบทแนะนำนี้
- ใน Google Cloud Console ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิก ลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบ โปรเจ็กต์
หัวข้อที่เกี่ยวข้อง
หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในแอป Chat โปรดดู ข้อมูลต่อไปนี้