Trang này mô tả cách ứng dụng Google Chat có thể nhận và phản hồi các lượt tương tác của người dùng, còn được gọi là sự kiện tương tác của ứng dụng Google Chat.
Trang này mô tả cách thực hiện những việc sau:
- Định cấu hình ứng dụng Chat để nhận sự kiện tương tác.
- Xử lý sự kiện tương tác trên cơ sở hạ tầng của bạn.
- Nếu thích hợp, hãy phản hồi các sự kiện tương tác.
Điều kiện tiên quyết
- Tài khoản Google Workspace dành cho doanh nghiệp hoặc doanh nghiệp có quyền truy cập vào Google Chat.
- Tạo một dự án trên Google Cloud.
- Định cấu hình màn hình xin phép bằng OAuth.
- Bật Google Chat API.
Các loại sự kiện tương tác
Sự kiện tương tác của ứng dụng Google Chat đại diện cho mọi hành động mà người dùng thực hiện để gọi hoặc tương tác với ứng dụng Chat, chẳng hạn như @đề cập đến ứng dụng Chat hoặc thêm ứng dụng đó vào một không gian.
Khi người dùng tương tác với một ứng dụng Chat,
Google Chat sẽ gửi cho ứng dụng Chat một sự kiện tương tác,
được biểu thị dưới dạng loại
Event trong
Chat API. Ứng dụng Chat có thể sử dụng sự kiện này để xử lý lượt tương tác và tuỳ ý phản hồi bằng một tin nhắn.
Đối với mỗi loại lượt tương tác của người dùng, Google Chat sẽ gửi một loại sự kiện tương tác khác nhau để giúp ứng dụng Chat xử lý từng loại sự kiện tương ứng. Loại sự kiện tương tác được biểu thị bằng đối tượng
eventType.
Ví dụ: Google Chat sử dụng loại sự kiện
ADDED_TO_SPACE cho mọi lượt tương tác khi người dùng thêm
ứng dụng Chat vào một không gian, để
ứng dụng Chat có thể ngay lập tức phản hồi bằng một tin nhắn chào mừng
trong không gian đó.
ADDED_TO_SPACE
mà ứng dụng Chat xử lý để
gửi thông điệp chào mừng trong không gian đó. Bảng sau đây cho thấy các lượt tương tác phổ biến của người dùng, loại sự kiện tương tác mà ứng dụng Chat nhận được và cách ứng dụng Chat thường phản hồi:
| Lượt tương tác của người dùng | eventType |
Phản hồi thông thường của ứng dụng Chat |
|---|---|---|
| Người dùng nhắn tin cho một ứng dụng Chat. Ví dụ: @đề cập đến ứng dụng Chat hoặc sử dụng lệnh dấu gạch chéo. | MESSAGE |
Ứng dụng Chat phản hồi dựa trên nội dung của
tin nhắn. Ví dụ: một ứng dụng Chat trả lời
lệnh dấu gạch chéo /about bằng một tin nhắn giải thích các tác vụ
mà ứng dụng Chat có thể thực hiện. |
| Người dùng thêm một ứng dụng Chat vào một không gian. | ADDED_TO_SPACE |
Ứng dụng Chat gửi một tin nhắn giới thiệu giải thích những việc ứng dụng thực hiện và cách người dùng trong không gian có thể tương tác với ứng dụng đó. |
| Người dùng xoá một ứng dụng Chat khỏi một không gian. | REMOVED_FROM_SPACE |
Ứng dụng Chat xoá mọi thông báo đến được định cấu hình cho không gian (chẳng hạn như xoá webhook) và xoá mọi bộ nhớ trong. |
| Người dùng nhấp vào một nút trên thẻ trong tin nhắn, hộp thoại hoặc trang chủ của ứng dụng Chat. | CARD_CLICKED |
Ứng dụng Chat xử lý và lưu trữ mọi dữ liệu mà người dùng đã gửi hoặc trả về một thẻ khác. |
| Người dùng mở trang chủ của ứng dụng Chat bằng cách nhấp vào thẻ Trang chủ trong tin nhắn 1:1. | APP_HOME |
Ứng dụng Chat trả về một thẻ tĩnh hoặc thẻ tương tác thẻ từ trang chủ. |
| Người dùng gửi biểu mẫu từ trang chủ của ứng dụng Chat. | SUBMIT_FORM |
Ứng dụng Chat xử lý và lưu trữ mọi dữ liệu mà người dùng đã gửi hoặc trả về một thẻ khác. |
| Người dùng gọi một lệnh bằng cách sử dụng lệnh nhanh. | APP_COMMAND |
Ứng dụng Chat phản hồi dựa trên lệnh đã được gọi. Ví dụ: một ứng dụng Chat trả lời lệnh Giới thiệu bằng một tin nhắn giải thích các tác vụ mà ứng dụng Chat có thể thực hiện. |
Để xem tất cả các sự kiện tương tác được hỗ trợ, hãy xem tài liệu tham khảo
EventType.
Sự kiện tương tác từ hộp thoại
Nếu ứng dụng Chat của bạn mở hộp thoại, sự kiện tương tác sẽ chứa thông tin bổ sung sau đây mà bạn có thể dùng để xử lý phản hồi:
isDialogEventđược đặt thànhtrue.- The
DialogEventTypelàm rõ liệu lượt tương tác có kích hoạt hộp thoại mở, gửi thông tin từ hộp thoại hay đóng hộp thoại hay không.
Bảng sau đây cho thấy các lượt tương tác phổ biến với hộp thoại, các loại sự kiện hộp thoại tương ứng và nội dung mô tả về cách ứng dụng Chat thường phản hồi:
| Lượt tương tác của người dùng với hộp thoại | Loại sự kiện hộp thoại | Phản hồi thông thường |
|---|---|---|
| Người dùng kích hoạt yêu cầu hộp thoại. Ví dụ: họ sử dụng lệnh dấu gạch chéo hoặc nhấp vào một nút trong tin nhắn. | REQUEST_DIALOG |
Ứng dụng Chat mở hộp thoại. |
| Người dùng gửi thông tin trong hộp thoại bằng cách nhấp vào một nút. | SUBMIT_DIALOG |
Ứng dụng Chat chuyển đến một hộp thoại khác hoặc đóng hộp thoại để hoàn tất lượt tương tác. |
| Người dùng thoát hoặc đóng hộp thoại trước khi gửi thông tin. | CANCEL_DIALOG |
Tuỳ ý, ứng dụng Chat có thể phản hồi bằng một tin nhắn mới hoặc cập nhật tin nhắn hoặc thẻ mà người dùng đã mở hộp thoại. |
Để biết thêm thông tin, hãy xem bài viết Mở hộp thoại tương tác.
Nhận sự kiện tương tác của ứng dụng Chat
Phần này mô tả cách nhận và xử lý sự kiện tương tác cho ứng dụng Chat.
Định cấu hình ứng dụng Chat để nhận sự kiện tương tác
Không phải ứng dụng Chat nào cũng có tính tương tác. Ví dụ: webhook đến chỉ có thể gửi tin nhắn đi và không thể phản hồi người dùng. Nếu đang tạo ứng dụng Chat có tính tương tác, bạn phải chọn một điểm cuối cho phép ứng dụng Chat nhận, xử lý và phản hồi các sự kiện tương tác. Để tìm hiểu thêm về cách thiết kế ứng dụng Chat, hãy xem bài viết Kiến trúc triển khai ứng dụng Chat.
Đối với mỗi tính năng tương tác mà bạn muốn tạo, bạn phải cập nhật cấu hình trong Chat API để Google Chat có thể gửi các sự kiện tương tác liên quan đến ứng dụng Chat:
Trong bảng điều khiển Google Cloud, hãy chuyển đến trang Chat API rồi nhấp vào trang Cấu hình:
Trong phần Tính năng tương tác, hãy xem lại các chế độ cài đặt và cập nhật dựa trên các tính năng mà bạn muốn tạo:
Trường Mô tả Chức năng Bắt buộc. Một tập hợp các trường xác định cách ứng dụng Chat có thể tương tác với người dùng. Theo mặc định, người dùng có thể tìm và nhắn tin trực tiếp cho ứng dụng Chat trong Google Chat. - Tham gia không gian và cuộc trò chuyện nhóm: Người dùng có thể thêm ứng dụng Chat vào không gian và cuộc trò chuyện nhóm.
Chế độ cài đặt kết nối Bắt buộc. Điểm cuối cho ứng dụng Chat, là một trong những điểm cuối sau: - URL điểm cuối HTTP: Một điểm cuối HTTPS lưu trữ quá trình triển khai ứng dụng Chat.
- Apps Script: Mã nhận dạng triển khai cho dự án Apps Script triển khai ứng dụng Chat.
- Tên chủ đề Cloud Pub/Sub: Một chủ đề Pub/Sub mà ứng dụng Chat đăng ký làm điểm cuối.
- Dialogflow: Đăng ký ứng dụng Chat bằng công cụ tích hợp Dialogflow. Để biết thêm thông tin, hãy xem bài viết Tạo ứng dụng DialogflowGoogle Chat có thể hiểu ngôn ngữ tự nhiên.
Lệnh Không bắt buộc. Lệnh dấu gạch chéo và lệnh nhanh cho ứng dụng Chat. Lệnh cho phép người dùng yêu cầu một hành động hoặc sử dụng một tính năng cụ thể của ứng dụng Chat. Để biết thêm thông tin, hãy xem bài viết Phản hồi các lệnh của ứng dụng Google Chat. Bản xem trước đường liên kết Không bắt buộc. Các mẫu URL mà ứng dụng Chat nhận dạng và cung cấp nội dung bổ sung khi người dùng gửi đường liên kết. Để biết thêm thông tin, hãy xem bài viết Xem trước đường liên kết. Khả năng hiển thị Không bắt buộc. Tối đa 5 cá nhân hoặc một hoặc nhiều Nhóm Google có thể xem và cài đặt ứng dụng Chat. Sử dụng trường này để kiểm thử ứng dụng Chat hoặc chia sẻ ứng dụng Chat với nhóm của bạn. Để biết thêm thông tin, hãy xem bài viết Kiểm thử các tính năng tương tác. Nhấp vào Lưu. Khi bạn lưu cấu hình ứng dụng Chat, ứng dụng Chat sẽ có sẵn cho những người dùng được chỉ định trong tổ chức Google Workspace của bạn.
Ứng dụng Chat hiện được định cấu hình để nhận sự kiện tương tác từ Google Chat.
Xử lý các lần thử lại lệnh gọi HTTP đến dịch vụ của bạn
Nếu yêu cầu HTTPS đến dịch vụ của bạn không thành công (chẳng hạn như hết thời gian chờ, lỗi mạng tạm thời hoặc mã trạng thái HTTPS không phải 2xx), Google Chat có thể thử lại việc gửi vài lần trong vài phút (nhưng điều này không được đảm bảo). Do đó, ứng dụng Chat có thể nhận được cùng một tin nhắn vài lần trong một số trường hợp. Nếu yêu cầu hoàn tất thành công nhưng trả về tải trọng tin nhắn không hợp lệ, Google Chat sẽ không thử lại yêu cầu.
Xử lý hoặc phản hồi các sự kiện tương tác
Phần này giải thích cách ứng dụng Google Chat có thể xử lý và phản hồi các sự kiện tương tác.
Sau khi ứng dụng Chat nhận được sự kiện tương tác từ Google Chat, ứng dụng có thể phản hồi theo nhiều cách. Trong nhiều trường hợp, ứng dụng Chat có tính tương tác sẽ trả lời người dùng bằng một tin nhắn. Ứng dụng Google Chat cũng có thể tra cứu một số thông tin từ nguồn dữ liệu, ghi lại thông tin sự kiện tương tác hoặc thực hiện bất kỳ thao tác nào khác. Hành vi xử lý này về cơ bản là hành vi xác định ứng dụng Google Chat.
Để phản hồi đồng bộ, ứng dụng Chat phải phản hồi trong vòng 30 giây và phản hồi phải được đăng trong không gian nơi xảy ra lượt tương tác. Nếu không, ứng dụng Chat có thể phản hồi không đồng bộ.
Đối với mỗi sự kiện tương tác, ứng dụng Chat sẽ nhận được một nội dung yêu cầu, là tải trọng JSON đại diện cho sự kiện. Bạn có thể sử dụng thông tin này để xử lý phản hồi. Để xem ví dụ về tải trọng sự kiện, hãy xem bài viết Các loại sự kiện tương tác của ứng dụng Chat.
Sơ đồ sau đây minh hoạ cách ứng dụng Google Chat thường xử lý hoặc phản hồi các loại sự kiện tương tác:
Trả lời theo thời gian thực
Sự kiện tương tác cho phép ứng dụng Chat phản hồi theo thời gian thực hoặc đồng bộ. Phản hồi đồng bộ không yêu cầu xác thực.
Để phản hồi theo thời gian thực, ứng dụng Chat phải trả về đối tượng
Message. Để
trả lời bằng một tin nhắn trong không gian, đối tượng Message có thể
chứa text, cardsV2 và accessoryWidgets đối tượng. Để sử dụng với các loại phản hồi khác, hãy xem các hướng dẫn sau:
Trả lời bằng tin nhắn
Trong ví dụ này, ứng dụng Chat của bạn sẽ tạo và gửi tin nhắn văn bản bất cứ khi nào ứng dụng được thêm vào một không gian. Để tìm hiểu về các phương pháp hay nhất để giới thiệu người dùng, hãy xem bài viết Giới thiệu người dùng về ứng dụng Chat.
Để gửi tin nhắn văn bản khi người dùng thêm ứng dụng Chat của bạn
vào một không gian, ứng dụng Chat của bạn
phản hồi ADDED_TO_SPACE
sự kiện tương tác. Để phản hồi các sự kiện tương tác ADDED_TO_SPACE bằng tin nhắn văn bản, hãy sử dụng mã sau:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
event = request.get_json()
if event['type'] == 'ADDED_TO_SPACE':
return json.jsonify({
'text': 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To' +
'learn what else I can do, type `/help`.'
})
return json.jsonify({})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public Message onEvent(@RequestBody JsonNode event) {
switch (event.get("type").asText()) {
case "ADDED_TO_SPACE":
return new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar" +
"from Google Chat. Take a look at your schedule today by typing" +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`." +
"To learn what else I can do, type `/help`.");
default:
return new Message();
}
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
Mã mẫu trả về tin nhắn văn bản sau:
Phản hồi không đồng bộ
Đôi khi, ứng dụng Chat phải phản hồi sự kiện tương tác sau 30 giây hoặc thực hiện các tác vụ bên ngoài không gian nơi sự kiện tương tác được tạo. Ví dụ: ứng dụng Chat có thể cần phản hồi người dùng sau khi hoàn tất một tác vụ chạy trong thời gian dài. Trong trường hợp này, ứng dụng Chat có thể phản hồi không đồng bộ bằng cách gọi Google Chat API.
Để tạo tin nhắn bằng Chat API, hãy xem bài viết Tạo tin nhắn. Để xem hướng dẫn về cách sử dụng các phương thức Chat API bổ sung, hãy xem bài viết Tổng quan về Chat API.
Chủ đề có liên quan
- Gửi tin nhắn
- Mở hộp thoại tương tác
- Xem trước đường liên kết
- Đọc dữ liệu biểu mẫu do người dùng nhập trên thẻ
- Phản hồi các lệnh
- Tạo trang chủ cho ứng dụng Chat
- Xác minh yêu cầu từ Chat
- Kiểm thử các tính năng tương tác cho ứng dụng Google Chat