接收和响应用户互动

本页面介绍了 Google Chat 应用如何接收和响应用户互动(也称为 Google Chat 应用互动事件)。

Google Chat 应用互动事件表示用户为调用 Chat 应用或与 Chat 应用互动而执行的任何操作,例如用“@”提及 Chat 应用或将其添加到聊天室。当用户与 Chat 应用互动时,Google Chat 会向 Chat 应用发送互动事件。 Chat 应用可以使用该事件来处理互动并创建响应。

例如,Chat 应用使用互动事件执行以下任一操作:

互动事件示例 Chat 应用的一般回复
用户通过用“@”提及某个 Chat 应用或使用斜杠命令来调用 Chat 应用。 Chat 应用会处理消息内容以创建消息。例如,Chat 应用在回复 /about 命令时会提供一条消息,说明该 Chat 应用可以执行的任务。
用户将 Chat 应用添加到聊天室。 Chat 应用会发送新手入门消息,其中会说明自身功能以及聊天室中的用户可以如何与之互动。
用户从聊天室中移除了 Chat 应用。 Chat 应用会移除为聊天室配置的所有传入通知(例如删除网络钩子),并清除所有内部存储空间。
用户点击 Chat 应用发送的卡片或对话框上的按钮。 Chat 应用会处理并存储用户提交的所有数据,或者返回其他卡片或对话框。

对于每种类型的用户互动,Google Chat 都会发送不同类型的互动事件,以帮助您的 Chat 应用相应地处理每种事件类型。例如,当用户将 Chat 应用添加到聊天室时,Google Chat 会使用事件类型 ADDED_TO_SPACE 进行此类互动,以便 Chat 应用可以处理响应,例如向聊天室发布欢迎消息。如需查看所有支持的互动事件,请参阅 EventType 参考文档

本页面介绍了如何执行以下操作:

  • 将您的 Chat 应用配置为接收事件。
  • 在基础架构上处理互动事件。
  • 适当地响应互动事件。

接收 Chat 应用互动事件

本部分介绍了如何接收和处理 Chat 应用的互动事件。

将您的 Chat 应用配置为接收互动事件

并非所有 Chat 应用都是互动式应用。例如,传入的网络钩子只能发送外发消息,无法回复用户。如果您要构建交互式 Chat 应用,则必须选择一个端点,使您的 Chat 应用可以接收、处理和响应互动事件。如需详细了解如何设计您的 Chat 应用,请参阅 Chat 应用实现架构

如果您构建了互动式 Chat 应用,则必须配置 Google Chat API,以便 Google Chat 可以向您发送互动事件:

  1. 在 Google Cloud 控制台中,打开 Google Chat API 页面:

    转到 Google Chat API 页面

  2. 点击配置标签页。
  3. 互动功能部分,点击启用互动功能开关,将其切换到“开启”位置。
  4. 功能中,选中以下一个或两个复选框:
    1. 接收 1 对 1 消息:允许用户在私信 (DM) 聊天室中与您的 Chat 应用互动。每当用户在 DM 聊天室中发送消息时,您的 Chat 应用就会收到互动事件。
    2. 加入聊天室和群组对话:允许用户在包含多人的聊天室中添加和移除您的 Chat 应用。每当在您的聊天室中添加或移除该 Chat 应用时,以及当用户在聊天室中用“@”提及或使用斜杠命令时,该应用都会收到互动事件。
  5. 连接设置中,指定 Google Chat 将 Chat 应用互动事件发送到何处。
  6. 可选:在 Slash 命令中,添加并配置一个或多个斜杠命令。如需了解详情,请参阅设置斜杠命令
  7. 可选:在链接预览中,添加并配置一个或多个可供 Chat 应用预览的网址格式。如需了解详情,请参阅预览链接
  8. 点击保存

您的 Chat 应用现已配置为接收来自 Google Chat 的互动事件。

处理服务的 HTTP 调用重试

如果对您的服务的 HTTPS 请求失败(例如超时、临时网络故障或非 2xx HTTPS 状态代码),Google Chat 可能会在几分钟内重新尝试传送几次(但不保证一定成功)。因此,在某些情况下,Chat 应用可能会多次收到相同的消息。如果请求成功完成但返回无效的消息载荷,Google Chat 不会重试该请求。

处理或响应互动事件

本部分介绍 Google Chat 应用如何处理和响应互动事件。

在您的 Chat 应用收到来自 Google Chat 的互动事件后,它们可以通过多种方式进行响应。在许多情况下,交互式 Chat 应用会通过消息回复用户。Google Chat 应用还可以从数据源查询一些信息,记录互动事件信息,或其他任何内容。这种处理行为本质上是 Google Chat 应用的定义。

对于每个互动事件,Chat 应用都会收到请求正文,这是代表事件的 JSON 载荷。您可以使用这些信息来处理响应。如需查看事件载荷示例,请参阅 Chat 应用互动事件类型

下图演示了 Google Chat 应用通常如何处理或响应不同类型的互动事件:

Google Chat 应用如何处理互动事件的架构。

实时回答

通过互动事件,Chat 应用可以实时或同步响应。同步响应不需要进行身份验证

如需创建对互动事件的同步响应,请参阅以下指南:

如需同步响应,Chat 应用必须在 30 秒内做出响应,并且响应必须发布到发生互动的聊天室中。否则,Chat 应用可以异步响应。

异步响应

有时,Chat 应用必须在 30 秒后响应互动事件,或者在生成互动事件的空间之外执行任务。例如,Chat 应用在完成一项长时间运行的任务后可能需要响应用户。在这种情况下,Chat 应用可以通过调用 Google Chat API 进行异步响应。

如需使用 Chat API 创建消息,请参阅创建消息。有关使用其他 Chat API 方法的指南,请参阅 Chat API 概览