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

本页介绍了如何将 Google 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 进行身份验证之前修改该消息。在这种情况下,Chat 应用 B 会在用户完成身份验证和配置后收到修改后的消息文本。

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

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

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

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