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

本页面介绍如何将 Google Chat 应用与 Google 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