Trang này mô tả cách thiết lập webhook để gửi tin nhắn không đồng bộ đến phòng Chat bằng điều kiện kích hoạt bên ngoài. Ví dụ: bạn có thể định cấu hình một ứng dụng giám sát để thông báo cho nhân viên trực điện thoại trên Chat khi máy chủ ngừng hoạt động. Để gửi tin nhắn đồng bộ bằng ứng dụng Chat, hãy xem phần Gửi tin nhắn.
Với loại thiết kế cấu trúc này, người dùng không thể tương tác với webhook hoặc ứng dụng bên ngoài được kết nối vì hoạt động giao tiếp là một chiều. Webhook không có tính chất trò chuyện. Họ không thể trả lời hoặc nhận tin nhắn của người dùng hoặc sự kiện tương tác với ứng dụng Chat. Để trả lời tin nhắn, hãy tạo ứng dụng Chat thay vì webhook.
Mặc dù về mặt kỹ thuật, webhook không phải là ứng dụng Chat — webhook kết nối ứng dụng bằng cách sử dụng các yêu cầu HTTP tiêu chuẩn, nhưng trang này gọi nó là một ứng dụng Chat để đơn giản hoá. Mỗi webhook chỉ hoạt động trong phòng Chat mà bạn đã đăng ký. Webhook đến hoạt động trong tin nhắn trực tiếp, nhưng chỉ khi tất cả người dùng đều bật các ứng dụng trong Chat. Bạn không thể xuất bản webhook lên Google Workspace Marketplace.
Biểu đồ dưới đây cho thấy cấu trúc của một webhook kết nối với Chat:
Trong biểu đồ trước, ứng dụng Chat có luồng thông tin sau:
- Logic của ứng dụng Chat nhận thông tin từ các dịch vụ bên thứ ba bên ngoài, chẳng hạn như hệ thống quản lý dự án hoặc công cụ bán vé.
- Logic của ứng dụng Chat được lưu trữ trên đám mây hoặc hệ thống tại cơ sở hạ tầng riêng, có thể gửi tin nhắn bằng cách sử dụng URL webhook đến một phòng Chat cụ thể.
- Người dùng có thể nhận tin nhắn từ ứng dụng Chat trong phòng Chat cụ thể đó nhưng không thể tương tác với ứng dụng Chat.
Điều kiện tiên quyết
Python
- Tài khoản Google Workspace có quyền truy cập vào Chat. Tổ chức Google Workspace của bạn phải cho phép người dùng thêm và sử dụng webhook đến.
- Python 3.10.7 trở lên.
Thư viện
httplib2
. Nếu cần, hãy chạy lệnh giao diện dòng lệnh (CLI) sau để cài đặt thư viện bằngpip
:pip install httplib2
Một phòng Chat hiện có.
Node.js
- Tài khoản Google Workspace có quyền truy cập vào Chat. Tổ chức Google Workspace của bạn phải cho phép người dùng thêm và sử dụng webhook đến.
- Đã cài đặt Node.js và npm.
- Một phòng Chat hiện có.
Java
- Tài khoản Google Workspace có quyền truy cập vào Chat. Tổ chức Google Workspace của bạn cho phép người dùng thêm và sử dụng các webhook đến.
- Java 11 trở lên.
- Apache Maven
- Một phòng Chat hiện có.
Apps Script
- Tài khoản Google Workspace có quyền truy cập vào Chat. Tổ chức Google Workspace của bạn cho phép người dùng thêm và sử dụng các webhook đến.
- Một phòng Chat hiện có.
Tạo một webhook
Để tạo một webhook, hãy đăng ký webhook đó trong phòng Chat mà bạn muốn nhận tin nhắn, sau đó viết một tập lệnh gửi tin nhắn.
Đăng ký webhook đến
- Trong trình duyệt, hãy mở Chat. Bạn không thể định cấu hình webhook từ ứng dụng Chat dành cho thiết bị di động.
- Chuyển đến không gian bạn muốn thêm webhook.
- Bên cạnh tiêu đề không gian, hãy nhấp vào mũi tên mở rộng , sau đó nhấp vào Ứng dụng và các công cụ tích hợp.
Nhấp vào
Thêm webhook.Trong trường Name (Tên), hãy nhập
Quickstart Webhook
.Trong trường URL hình đại diện, hãy nhập
https://developers.google.com/chat/images/chat-product-icon.png
.Nhấp vào Lưu.
Để sao chép URL webhook, hãy nhấp vào
Tuỳ chọn khác, rồi nhấp vào Sao chép đường liên kết.
Viết tập lệnh webhook
Tập lệnh webhook mẫu sẽ gửi thông báo đến không gian nơi webhook được đăng ký bằng cách gửi yêu cầu POST
đến URL webhook. API Chat phản hồi bằng một thực thể của Message
.
Chọn một ngôn ngữ để tìm hiểu cách tạo tập lệnh webhook:
Python
Trong thư mục đang làm việc, hãy tạo một tệp có tên
quickstart.py
.Trong
quickstart.py
, dán mã sau:Thay thế giá trị cho biến
url
bằng URL webhook mà bạn đã sao chép khi đăng ký webhook.
Node.js
Trong thư mục đang làm việc, hãy tạo một tệp có tên
index.js
.Trong
index.js
, dán mã sau:Thay thế giá trị cho biến
url
bằng URL webhook mà bạn đã sao chép khi đăng ký webhook.
Java
Trong thư mục đang làm việc, hãy tạo một tệp có tên
pom.xml
.Trong
pom.xml
, hãy sao chép và dán nội dung sau:Trong thư mục đang làm việc, hãy tạo cấu trúc thư mục sau
src/main/java
.Trong thư mục
src/main/java
, hãy tạo một tệp có tênApp.java
.Trong
App.java
, dán mã sau:Thay thế giá trị cho biến
URL
bằng URL webhook mà bạn đã sao chép khi đăng ký webhook.
Apps Script
Trong trình duyệt, hãy chuyển đến Apps Script.
Nhấp vào New Project (Dự án mới).
Dán đoạn mã sau:
Thay thế giá trị cho biến
url
bằng URL webhook mà bạn đã sao chép khi đăng ký webhook.
Chạy tập lệnh webhook
Trong CLI, hãy chạy tập lệnh:
Python
python3 quickstart.py
Node.js
node index.js
Java
mvn compile exec:java -Dexec.mainClass=App
Apps Script
- Nhấp vào Chạy.
Khi bạn chạy mã, webhook sẽ gửi thông báo đến không gian mà bạn đã đăng ký.
Bắt đầu hoặc trả lời chuỗi tin nhắn
Chỉ định
spaces.messages.thread.threadKey
trong nội dung yêu cầu thông báo. Tuỳ thuộc vào việc bạn là người bắt đầu hay đang trả lời một luồng, hãy sử dụng các giá trị sau chothreadKey
:Nếu bắt đầu một chuỗi, hãy đặt
threadKey
thành một chuỗi tuỳ ý, nhưng hãy ghi lại giá trị này để đăng câu trả lời cho chuỗi.Nếu trả lời một chuỗi tin nhắn, hãy chỉ định
threadKey
được đặt khi chuỗi đó bắt đầu. Ví dụ: để đăng câu trả lời cho luồng mà thông báo ban đầu sử dụngMY-THREAD
, hãy đặtMY-THREAD
.
Xác định hành vi của luồng nếu không tìm thấy
threadKey
được chỉ định:Trả lời chuỗi tin nhắn hoặc bắt đầu một chuỗi tin nhắn mới. Thêm thông số
messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD
vào URL webhook. Việc chuyển tham số URL này, Chat sẽ tìm một luồng hiện có bằng cách sử dụngthreadKey
được chỉ định. Nếu tìm thấy một mã, thì tin nhắn sẽ được đăng dưới dạng câu trả lời cho chuỗi đó. Nếu không tìm thấy hệ thống nào, thì thông báo sẽ bắt đầu một chuỗi mới tương ứng vớithreadKey
đó.Trả lời chuỗi tin nhắn hoặc không làm gì cả. Thêm thông số
messageReplyOption=REPLY_MESSAGE_OR_FAIL
vào URL webhook. Việc chuyển tham số URL này, Chat sẽ tìm một luồng hiện có bằng cách sử dụngthreadKey
được chỉ định. Nếu tìm thấy một mã, thì tin nhắn sẽ được đăng dưới dạng câu trả lời cho chuỗi đó. Nếu không tìm thấy thông báo nào thì tin nhắn sẽ không được gửi.
Để tìm hiểu thêm, hãy xem
messageReplyOption
.
Mã mẫu sau đây bắt đầu hoặc trả lời một chuỗi tin nhắn: