หน้านี้อธิบายวิธีสร้างแอป Chat โดยใช้ Pub/Sub สถาปัตยกรรมประเภทนี้สำหรับแอป Chat มีประโยชน์ในกรณีที่องค์กรมีไฟร์วอลล์ ซึ่งอาจป้องกันไม่ให้ Chat ส่งข้อความไปยังแอป Chat หรือหากแอป Chat ใช้ Google Workspace Events API อย่างไรก็ตาม สถาปัตยกรรมนี้มีข้อจำกัดต่อไปนี้เนื่องจากแอป Chat เหล่านี้ส่งและรับได้เฉพาะข้อความแบบอะซิงโครนัส
- ใช้กล่องโต้ตอบ ในข้อความไม่ได้ แต่ให้ใช้ข้อความการ์ดแทน
- อัปเดตการ์ดแต่ละใบด้วยการตอบกลับแบบซิงโครนัสไม่ได้ แต่ให้อัปเดต
ข้อความทั้งหมดโดยเรียกใช้เมธอด
patch
แผนภาพต่อไปนี้แสดงสถาปัตยกรรมของแอป Chat ที่สร้างด้วย Pub/Sub
ในแผนภาพก่อนหน้า ผู้ใช้ที่โต้ตอบกับแอปแชท Pub/Sub จะมีโฟลว์ข้อมูลดังนี้
ผู้ใช้ส่งข้อความใน Chat ไปยังแอปใน Chat ไม่ว่าจะในข้อความส่วนตัวหรือในพื้นที่ Chat หรือมีเหตุการณ์เกิดขึ้นในพื้นที่ Chat ซึ่งแอปใน Chat มีการสมัครใช้บริการที่ใช้งานอยู่
Chat จะส่งข้อความไปยังหัวข้อ Pub/Sub
เซิร์ฟเวอร์แอปพลิเคชันซึ่งเป็นระบบในระบบคลาวด์หรือในองค์กรที่มีตรรกะของแอป Chat จะสมัครรับข้อมูลหัวข้อ Pub/Sub เพื่อรับข้อความผ่านไฟร์วอลล์
แอป Chat สามารถเรียกใช้ Chat API เพื่อโพสต์ข้อความแบบไม่พร้อมกันหรือดำเนินการอื่นๆ ได้ (ไม่บังคับ)
ข้อกำหนดเบื้องต้น
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 โดยทำดังนี้
- ในส่วนชื่อแอป ให้ป้อน
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 ให้ไปที่หน้าจัดการทรัพยากร คลิก เมนู > IAM และผู้ดูแลระบบ > จัดการทรัพยากร
- ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิก ลบ
- ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบ โปรเจ็กต์
หัวข้อที่เกี่ยวข้อง
หากต้องการเพิ่มฟีเจอร์อื่นๆ ลงในแอป Chat โปรดดู ข้อมูลต่อไปนี้