将 Chat 应用与其他服务和工具相关联

本页介绍了如何将 Google Chat 应用与 Google Chat 之外的服务或工具相关联。虽然 Chat 应用本身功能强大,但它们通常会与其他系统协同工作,并且需要配套应用来关联账号、授权数据访问权限、显示其他数据或配置用户偏好设置。

前提条件

启用了交互功能的 Google Chat 应用。如需创建交互式 Chat 应用,请根据您要使用的应用架构完成以下任一快速入门:

向用户请求 Chat 应用配置

如果完成请求需要额外的配置,而这些配置无法直接在 Chat 应用中完成,请在正常回复中向用户返回配置网址,或以以下形式私下显示该网址:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

这会指示 Google Chat 向用户显示一条私密提示,其中 CONFIGURATION_URL 是供用户访问以进行额外身份验证、授权或配置的链接。REQUEST_CONFIG 响应与常规响应消息互斥。系统会忽略所有文本、卡片或其他属性。

完成配置请求

Chat 应用收到的每个 MESSAGE 互动事件也包含 configCompleteRedirectUrl 字段。您必须在配置网址中对此网址进行编码,以便在完成该流程后使用。重定向到此网址会向 Google Chat 发出配置请求已执行的信号。

Chat 应用启动后,流程取决于收到的具体消息。如需响应 @app help 等消息,Chat 应用应发送消息,而无需进行额外配置。

当用户成功重定向到原始消息中提供的 configCompleteRedirectUrl 后,Google Chat 会执行以下步骤:

  1. 清除向发起用户显示的提示。
  2. 将原始消息转换为公开消息,使其对聊天室的其他成员可见。
  3. 再次向同一 Chat 应用发送原始消息。

访问 configCompleteRedirectUrl 只会影响单个用户消息。如果用户尝试多次向 Chat 应用发送消息,因此收到多个提示,那么点击某个提示并完成身份验证和配置流程只会影响该特定消息。其他消息不会发生变化。

以这种方式重新发送 MESSAGE 互动事件时,该事件应与原始事件相同;不过,在某些情况下,MESSAGE 互动事件可能会有所不同。例如,如果某条消息同时提及 Chat 应用 A 和 Chat 应用 B,那么如果 Chat 应用 A 在使用 Chat 应用 B 进行身份验证之前回复了一条常规消息,用户就可以修改该消息。在这种情况下,聊天应用 B 会在用户完成身份验证和配置后接收修改后的邮件文本。

在 Chat 之外对 Chat 用户进行身份验证

在某些情况下(例如为 API 请求 OAuth 授权),您的应用需要链接到 Chat 之外的网址,同时保持用户身份。在这些情况下,若要识别用户,最好的方法是使用 Google 登录保护目标应用。

使用登录期间发出的身份令牌获取用户 ID。sub 声明包含用户的唯一 ID,并且可以与 Google Chat 中的用户 ID 相关联。

虽然这两个 ID 并不完全相同,但可以强制转换。如需将 sub 声明的值强制转换为 Google Chat users/{user},请在该值前面附加 users/。例如,123 的声明值相当于发送到 Chat 应用的消息中的用户名 users/123