หน้านี้อธิบายวิธีสร้างแอป Chat โดยใช้ Pub/Sub สถาปัตยกรรมประเภทนี้สําหรับแอป Chat จะมีประโยชน์หากองค์กรมีไฟร์วอลล์ซึ่งอาจป้องกันไม่ให้ Chat ส่งข้อความไปยังแอป Chat หรือหากแอป Chat ใช้ Google Workspace Events API อย่างไรก็ตาม สถาปัตยกรรมนี้มีข้อจำกัดต่อไปนี้เนื่องจากแอปแชทเหล่านี้สามารถส่งและรับข้อความแบบไม่ประสานได้เท่านั้น
- ใช้กล่องโต้ตอบในข้อความไม่ได้ แต่ให้ใช้ข้อความการ์ดแทน
- อัปเดตการ์ดแต่ละใบด้วยการตอบกลับแบบซิงค์ไม่ได้ แต่ให้อัปเดตข้อความทั้งหมดโดยเรียกใช้เมธอด
patch
แทน
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของแอปแชทที่สร้างด้วย Pub/Sub
ในแผนภาพก่อนหน้า ผู้ใช้ที่โต้ตอบกับแอป Pub/Sub หรือ Chat จะมีขั้นตอนการส่งข้อมูลดังนี้
ผู้ใช้ส่งข้อความใน Chat ไปยังแอป Chat ไม่ว่าจะเป็นในข้อความส่วนตัวหรือในพื้นที่ทำงานของ Chat หรือมีเหตุการณ์เกิดขึ้นในพื้นที่ทำงานของ Chat ซึ่งแอป Chat มีการการสมัครใช้บริการที่ใช้งานอยู่
Chat จะส่งข้อความไปยังหัวข้อ Pub/Sub
เซิร์ฟเวอร์แอปพลิเคชันซึ่งเป็นระบบที่อยู่ในระบบคลาวด์หรือระบบในองค์กรซึ่งมีตรรกะแอป Chat จะสมัครรับข้อมูลหัวข้อ Pub/Sub เพื่อรับข้อความผ่านไฟร์วอลล์
แอป Chat สามารถเรียกใช้ Chat API เพื่อโพสต์ข้อความแบบไม่พร้อมกันหรือดำเนินการอื่นๆ ได้โดยขึ้นอยู่กับความต้องการ
ข้อกำหนดเบื้องต้น
Java
- บัญชี Google Workspace รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ ให้ดูที่ยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูหัวข้อสร้างโปรเจ็กต์ Google Cloud
- Java 11 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ Maven
Python
- บัญชี Google Workspace รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ ให้ดูที่ยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูหัวข้อสร้างโปรเจ็กต์ Google Cloud
- Python 3.6 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ pip
Node.js
- บัญชี Google Workspace รุ่น Business หรือ Enterprise ที่มีสิทธิ์เข้าถึง Google Chat
- โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน หากต้องการตรวจสอบว่าโปรเจ็กต์ที่มีอยู่เปิดใช้การเรียกเก็บเงินแล้วหรือไม่ ให้ดูที่ยืนยันสถานะการเรียกเก็บเงินของโปรเจ็กต์ หากต้องการสร้างโปรเจ็กต์และตั้งค่าการเรียกเก็บเงิน โปรดดูหัวข้อสร้างโปรเจ็กต์ Google Cloud
- Node.js 14 ขึ้นไป
- เครื่องมือจัดการแพ็กเกจ npm
-
โปรเจ็กต์ Node.js ที่เริ่มต้นแล้ว หากต้องการเริ่มต้นโปรเจ็กต์ใหม่ ให้สร้างและเปลี่ยนไปใช้โฟลเดอร์ใหม่ จากนั้นเรียกใช้คำสั่งต่อไปนี้ในอินเทอร์เฟซบรรทัดคำสั่ง
npm init
ตั้งค่าสภาพแวดล้อม
คุณต้องเปิดใช้ API ของ Google ในโปรเจ็กต์ Google Cloud ก่อนจึงจะใช้ได้ คุณเปิด API อย่างน้อย 1 รายการในโปรเจ็กต์ Google Cloud โปรเจ็กต์เดียวได้เปิดใช้ Google Chat API และ Pub/Sub API ในคอนโซล Google Cloud
ตั้งค่า 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
ระบุรหัสโปรเจ็กต์ Google Cloud ใน CLI
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 โดยทำดังนี้
- ป้อน
Quickstart App
ในชื่อแอป - ในURL ของรูปโปรไฟล์ ให้ป้อน
https://developers.google.com/chat/images/quickstart-app-avatar.png
- ในคำอธิบาย ให้ป้อน
Quickstart app
- ในส่วนฟังก์ชันการทำงาน ให้เลือกรับข้อความแบบ 1:1 และเข้าร่วมพื้นที่ทำงานและการสนทนากลุ่ม
- ในส่วนการตั้งค่าการเชื่อมต่อ ให้เลือก 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 ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์
หัวข้อที่เกี่ยวข้อง
หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในแอป Chat โปรดดูข้อมูลต่อไปนี้