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