หน้านี้อธิบายวิธีสร้างแอป 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 โปรดดู ข้อมูลต่อไปนี้