Trang này giải thích cách tạo ứng dụng Chat bằng Pub/Sub. Loại cấu trúc này cho ứng dụng Chat rất hữu ích nếu tổ chức của bạn có tường lửa có thể ngăn Chat gửi tin nhắn đến ứng dụng Chat hoặc nếu ứng dụng Chat sử dụng API Sự kiện của Google Workspace. Tuy nhiên, cấu trúc này có những hạn chế sau đây do các ứng dụng Chat này chỉ có thể gửi và nhận tin nhắn không đồng bộ:
- Không thể sử dụng hộp thoại trong tin nhắn. Thay vào đó, hãy dùng tin nhắn thẻ .
- Không thể cập nhật từng thẻ bằng phản hồi đồng bộ. Thay vào đó, hãy cập nhật
toàn bộ tin nhắn bằng cách gọi
patchphương thức.
Sơ đồ sau đây cho thấy cấu trúc của ứng dụng Chat được tạo bằng Pub/Sub:
Trong sơ đồ trước đó, người dùng tương tác với ứng dụng Chat Pub/Sub có luồng thông tin như sau:
Người dùng gửi tin nhắn trong Chat đến một ứng dụng Chat (trong tin nhắn trực tiếp hoặc trong một phòng Chat) hoặc một sự kiện xảy ra trong một phòng Chat mà ứng dụng Chat có gói thuê bao đang hoạt động .
Chat gửi tin nhắn đến một chủ đề Pub/Sub.
Một máy chủ ứng dụng (là hệ thống trên đám mây hoặc tại chỗ chứa logic ứng dụng Chat) đăng ký chủ đề Pub/Sub để nhận tin nhắn thông qua tường lửa.
Tuỳ ý, ứng dụng Chat có thể gọi Chat API để đăng tin nhắn hoặc thực hiện các thao tác khác một cách không đồng bộ.
Điều kiện tiên quyết
Khi tạo ứng dụng Chat, bạn phải bỏ chọn Build this Chat app as a Google Workspace add-on (Tạo ứng dụng Chat này dưới dạng tiện ích bổ sung của Google Workspace) trên trang cấu hình Chat API trong bảng điều khiển Google Cloud. Xem bài viết Xuất bản ứng dụng lên Google Chat.
Node.js
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Dự án trên Google Cloud đã bật tính năng thanh toán. Để kiểm tra xem một dự án hiện có đã bật tính năng thanh toán hay chưa, hãy xem bài viết Xác minh trạng thái thanh toán của dự án. Để tạo dự án trên đám mây và thiết lập tính năng thanh toán, hãy xem bài viết Tạo dự án trên Google Cloud.
- Node.js 14 trở lên
- Công cụ quản lý gói npm
-
Dự án Node.js đã khởi chạy. Để khởi chạy một dự án mới, hãy tạo và chuyển sang một thư mục mới, sau đó chạy lệnh sau trong giao diện dòng lệnh:
npm init
Python
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Dự án trên Google Cloud đã bật tính năng thanh toán. Để kiểm tra xem một dự án hiện có đã bật tính năng thanh toán hay chưa, hãy xem bài viết Xác minh trạng thái thanh toán của dự án. Để tạo dự án trên đám mây và thiết lập tính năng thanh toán, hãy xem bài viết Tạo dự án trên Google Cloud.
- Python 3.6 trở lên
- Công cụ quản lý gói pip
Java
- Tài khoản Google Workspace Business hoặc Enterprise có quyền truy cập vào Google Chat.
- Dự án trên Google Cloud đã bật tính năng thanh toán. Để kiểm tra xem một dự án hiện có đã bật tính năng thanh toán hay chưa, hãy xem bài viết Xác minh trạng thái thanh toán của dự án. Để tạo dự án trên đám mây và thiết lập tính năng thanh toán, hãy xem bài viết Tạo dự án trên Google Cloud.
- Java 11 trở lên
- Công cụ quản lý gói Maven
Thiết lập môi trường
Trước khi sử dụng API của Google, bạn cần bật các API đó trong một dự án trên Google Cloud. Bạn có thể bật một hoặc nhiều API trong một dự án trên Google Cloud.Trong bảng điều khiển Cloud, hãy bật Google Chat API và Pub/Sub API.
Thiết lập Pub/Sub
Tạo một chủ đề Pub/Sub mà Chat API có thể gửi tin nhắn đến. Bạn nên sử dụng một chủ đề cho mỗi ứng dụng Chat.
Cấp cho Chat quyền xuất bản vào chủ đề bằng cách chỉ định vai trò Nhà xuất bản Pub/Sub cho tài khoản dịch vụ sau:
chat-api-push@system.gserviceaccount.comTạo một tài khoản dịch vụ cho ứng dụng Chat để uỷ quyền bằng Pub/Sub và Chat, đồng thời lưu tệp khoá riêng tư vào thư mục làm việc.
Tạo gói thuê bao kéo cho chủ đề.
Chỉ định Vai trò người đăng ký Pub/Sub trên gói thuê bao cho tài khoản dịch vụ mà bạn đã tạo trước đó.
Viết tập lệnh
Node.js
Trong CLI, hãy cung cấp thông tin đăng nhập vào tài khoản dịch vụ:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHTrong CLI, hãy cung cấp mã dự án trên đám mây của Google Cloud:
export PROJECT_ID=PROJECT_IDTrong CLI, hãy cung cấp mã gói thuê bao cho gói thuê bao Pub/Sub mà bạn đã tạo trước đó:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDTrong thư mục làm việc, hãy tạo một tệp có tên là
package.json.Trong tệp
package.json, hãy dán mã sau:Trong thư mục làm việc, hãy tạo một tệp có tên là
index.js.Trong
index.js, hãy dán mã sau:
Python
Trong CLI, hãy cung cấp thông tin đăng nhập vào tài khoản dịch vụ:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHTrong CLI, hãy cung cấp mã dự án trên đám mây của Google Cloud:
export PROJECT_ID=PROJECT_IDTrong CLI, hãy cung cấp mã gói thuê bao cho gói thuê bao Pub/Sub mà bạn đã tạo trước đó:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDTrong thư mục làm việc, hãy tạo một tệp có tên là
requirements.txt.Trong tệp
requirements.txt, hãy dán mã sau:Trong thư mục làm việc, hãy tạo một tệp có tên là
app.py.Trong
app.py, hãy dán mã sau:
Java
Trong CLI, hãy cung cấp thông tin đăng nhập vào tài khoản dịch vụ:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATHTrong CLI, hãy cung cấp mã dự án trên đám mây của Google Cloud:
export PROJECT_ID=PROJECT_IDTrong CLI, hãy cung cấp mã gói thuê bao cho gói thuê bao Pub/Sub mà bạn đã tạo trước đó:
export SUBSCRIPTION_ID=SUBSCRIPTION_IDTrong thư mục làm việc, hãy tạo một tệp có tên là
pom.xml.Trong tệp
pom.xml, hãy dán mã sau:Trong thư mục làm việc, hãy tạo cấu trúc thư mục
src/main/java.Trong thư mục
src/main/java, hãy tạo một tệp có tên làMain.java.Trong
Main.java, hãy dán mã sau:
Xuất bản ứng dụng lên Chat
Trong bảng điều khiển Cloud, hãy chuyển đến trình đơn > API và dịch vụ > API và dịch vụ đã bật > Google Chat API > Cấu hình.
Định cấu hình ứng dụng Chat cho Pub/Sub:
- Bỏ chọn Build this Chat app as a Google Workspace add-on (Tạo ứng dụng Chat này dưới dạng tiện ích bổ sung của Google Workspace). Một hộp thoại sẽ mở ra yêu cầu bạn xác nhận. Trong hộp thoại, hãy nhấp vào Disable (Tắt).
- Trong App name (Tên ứng dụng), hãy nhập
Quickstart App. - Trong Avatar URL (URL hình đại diện), hãy nhập
https://developers.google.com/chat/images/quickstart-app-avatar.png. - Trong Description (Nội dung mô tả), hãy nhập
Quickstart app. - Trong phần Functionality (Chức năng), hãy chọn Join spaces and group conversations (Tham gia các phòng và cuộc trò chuyện nhóm).
- Trong phần Connection settings (Cài đặt kết nối), hãy chọn Cloud Pub/Sub rồi dán tên của chủ đề Pub/Sub mà bạn đã tạo trước đó.
- Trong phần Visibility (Chế độ hiển thị), hãy chọn Make this Google Chat app available to specific people and groups (Cho phép ứng dụng Google Chat này hiển thị với những người và nhóm cụ thể) trong miền của bạn rồi nhập địa chỉ email của bạn.
- Trong phần Logs (Nhật ký), hãy chọn Log errors to Logging (Ghi nhật ký lỗi vào Cloud Logging).
Nhấp vào Save (Lưu).
Ứng dụng đã sẵn sàng nhận và phản hồi tin nhắn trên Chat.
Chạy tập lệnh
Trong CLI, hãy chuyển sang thư mục làm việc rồi chạy tập lệnh:
Node.js
npm install
npm start
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Java
mvn compile exec:java -Dexec.mainClass=Main
Khi bạn chạy mã, ứng dụng sẽ bắt đầu lắng nghe các tin nhắn được xuất bản lên chủ đề Pub/Sub.
Kiểm thử ứng dụng Chat
Để kiểm thử ứng dụng Chat, hãy mở một phòng tin nhắn trực tiếp bằng ứng dụng Chat rồi gửi tin nhắn:
Mở Google Chat bằng tài khoản Google Workspace mà bạn đã cung cấp khi thêm chính mình làm người kiểm thử đáng tin cậy.
- Nhấp vào Cuộc trò chuyện mới.
- Trong trường Add 1 or more people (Thêm 1 người trở lên), hãy nhập tên của ứng dụng Chat.
Chọn ứng dụng Chat trong kết quả. Một tin nhắn trực tiếp sẽ mở ra.
- Trong tin nhắn trực tiếp mới với ứng dụng, hãy nhập
Hellorồi nhấnenter.
Để thêm người kiểm thử đáng tin cậy và tìm hiểu thêm về việc kiểm thử các tính năng tương tác, hãy xem bài viết Kiểm thử các tính năng tương tác cho ứng dụng Google Chat.
Khắc phục sự cố
Khi một ứng dụng hoặc thẻ Google Chat trả về lỗi, giao diện Chat sẽ hiển thị thông báo "Đã xảy ra lỗi." hoặc "Không thể xử lý yêu cầu của bạn". Đôi khi, giao diện người dùng Chat không hiển thị thông báo lỗi nào, nhưng ứng dụng hoặc thẻ Chat lại tạo ra kết quả không mong muốn; ví dụ: tin nhắn thẻ có thể không xuất hiện.
Mặc dù thông báo lỗi có thể không xuất hiện trong giao diện người dùng Chat, nhưng bạn có thể xem các thông báo lỗi mang tính mô tả và dữ liệu nhật ký để giúp khắc phục lỗi khi tính năng ghi nhật ký lỗi cho ứng dụng Chat được bật. Để được trợ giúp xem, gỡ lỗi và khắc phục lỗi, hãy xem bài viết Khắc phục sự cố và sửa lỗi Google Chat.
Dọn dẹp
Để tránh bị tính phí cho tài khoản Google Cloud đối với các tài nguyên được sử dụng trong hướng dẫn này, bạn nên xoá dự án trên đám mây.
- Trong bảng điều khiển Cloud, hãy chuyển đến trang Manage resources (Quản lý tài nguyên). Nhấp vào Menu > IAM & Admin > Manage Resources (Trình đơn > IAM và quản trị > Quản lý tài nguyên).
- Trong danh sách dự án, hãy chọn dự án mà bạn muốn xoá rồi nhấp vào biểu tượng Delete .
- Trong hộp thoại, hãy nhập mã dự án rồi nhấp vào tắt để xoá dự án.
Chủ đề có liên quan
Để thêm nhiều tính năng vào ứng dụng Chat, hãy xem các bài viết sau: