本页面介绍如何将 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 会执行以下步骤:
- 清除向发起发起的用户显示的提示。
- 将原始消息转换为公开消息,使其对聊天室的其他成员可见。
- 再次向同一聊天应用发送原始消息。
访问 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
。
相关主题
- MyProfile 应用示例使用 Google 登录响应中的身份令牌来识别用户。