本页概述了如何为扩展 Google Chat 的 Google Workspace 加购项构建界面。
如需为 Chat 应用构建界面,您可以使用以下加购项组件:
- 触发器:Google Chat 用户调用 Chat 应用的方式,例如将其添加到聊天室或向 其发送消息。
- 事件对象:Chat 应用 从触发器或界面互动接收的数据。
- 操作:Chat 应用响应 互动的方式,例如发送消息或返回基于卡片的 界面。
Chat 应用可以在以下界面中构建和显示卡片:
触发器
本部分介绍了 Google Workspace 加购项在 Chat 中使用的触发器。
触发器是指用户使用 Chat 界面调用 Chat 应用的特定方式,例如使用 @提及或应用命令。
下表显示了 Chat 触发器、说明以及 Chat 应用的典型响应方式:
| 触发器 | 说明 | 典型响应 |
|---|---|---|
| 添加到聊天室 |
用户将 Chat 应用添加到聊天室,或者 Google Workspace 管理员为组织中的用户在 私信聊天室中安装 Chat 应用。如需了解管理员安装的 Chat 应用,请参阅 Google Workspace 管理员帮助文档中的在您的网域中安装 Marketplace 中的应用。 |
Chat 应用会发送 入门消息,说明其功能以及聊天室中的用户如何与其互动。 |
| 消息 |
用户通过以下方式之一在 消息中与 Chat 应用互动:
|
Chat 应用会根据消息的内容做出响应。例如,Chat 应用会回复
斜杠命令 /about,并说明 Chat 应用可以执行的任务。
|
| 从聊天室中移除 |
用户从聊天室中移除 Chat 应用,或者 Google Workspace 管理员为组织中的用户卸载 Chat 应用。 用户无法移除由 管理员安装的 Chat 应用。如果用户之前安装过 Chat 应用,则无论 Google Workspace 管理员是否尝试卸载,Chat 应用 都会保持安装状态。 |
Chat 应用会移除为聊天室配置的所有传入通知 (例如删除 Webhook),并清除所有 内部存储空间。Chat 应用无法使用消息响应此触发器,因为它们不再是聊天室的成员。 |
| 应用命令 |
用户使用 Chat 应用 命令。 |
Chat 应用会响应命令。例如,使用消息进行回复或打开对话框。 |
与其他加购项不同,您必须使用 Google Chat API 为这些触发器配置任何回调函数。如需相关指导,请参阅配置 Chat 应用。
如需响应触发器,请参阅以下指南:
事件对象
当 Chat 触发器触发时,或者当 Chat 用户与 Chat 应用中的界面互动(例如点击按钮)时,Chat 应用会接收事件对象。借助事件对象,您可以使用互动数据来响应或更新界面。
如需了解如何处理事件对象,请参阅以下指南:
如需了解 Chat 和其他 Google Workspace 应用中的加购项事件对象,请参阅 事件对象。
聊天操作
本部分介绍了 Chat 应用如何使用 加购项操作 来响应用户互动。
如需使用加购项操作进行响应,Chat 应用必须在 30 秒内做出响应,并且响应必须发布在发生互动的聊天室中。 否则,Chat 应用必须设置身份验证并 调用 Google Chat API 才能做出响应。
Chat 应用可以通过多种方式处理和响应互动。 在许多情况下,Chat 应用会使用消息进行回复。 Chat 应用还可以从数据源中查找一些信息、记录事件对象信息,或者执行其他操作。 这种处理行为基本上定义了 Google Chat 应用。
如需响应用户互动,Chat 应用必须处理相应的事件对象并返回以下 JSON 对象之一:
DataActions:创建或更新 Google Workspace 数据。如需 发送或更新 Chat 消息, 该对象必须包含用于定义对Message数据的更改的标记,表示为chatDataActionMarkup。RenderActions:创建或更新 对话框,或为 多选菜单提供输入建议。AuthorizationError:使用授权卡片提示用户登录或向 Google 外部的服务进行身份验证。在 Chat 中,仅支持 基本授权卡片 。
下表显示了 Chat 应用如何使用操作进行响应。Chat 应用可以返回 JSON 对象,也可以使用 Apps 脚本的
构建
AddOnResponseService响应。
| Chat 应用响应 | 要返回的必需操作 (JSON) | 要返回的必需操作 (Apps 脚本) |
|---|---|---|
| 发送或更新消息。 | DataActions |
DataActionsResponse |
| 打开、更新或关闭对话框。 | RenderActions |
ActionResponse |
| 从卡片或对话框中收集 信息,根据 用户在多选菜单中输入的内容建议选择项。 | RenderActions |
ActionResponse |
| 预览链接 Chat 用户在聊天室中发送的消息中的链接。 | DataActions |
DataActionsResponse |
使用 Google Chat API 进行响应
Chat 应用可能需要使用 Google Chat API 响应互动,而不是返回加购项操作。例如,Chat 应用必须调用 Google Chat API 才能执行以下任何操作:
- 在 30 秒后响应互动。
- 在发生互动的聊天室之外执行任务。
- 在 Chat 中执行无法作为加购项操作的任务。例如,列出用户或 Chat 应用所属的聊天室,或将用户添加到聊天室。
- 代表 Chat 用户执行任务(需要用户身份验证)。
在 30 秒后响应互动事件时,为避免用户看到“您的 Chat 应用未响应”的错误消息,您必须在 30 秒内发送空响应来确认收到互动事件,如下所示:
Node.js
async function onEvent(req, res) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return res.send({});
};
Python
def on_event(event) -> dict:
# Trigger asynchronous job that will respond using the Google Chat API.
...
# Respond with an empty response to the Google Chat platform.
return {}
Java
public String onEvent(JsonNode event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return "{}";
}
Apps 脚本
function onEvent(event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return null;
}
如需了解如何对 Chat API 进行身份验证和调用,请参阅 Chat API 概览。
相关主题
- Google Workspace 加购项的触发器
- 配置 Google Chat 应用
- 事件对象
- 加购项操作
- 发送 Google Chat 消息
- 打开互动式对话框
- 预览 Google Chat 消息中的链接
- Chat API 概览