本页介绍了如何将 Google Chat 应用与 Google Chat 之外的服务或工具相关联。虽然 Chat 应用本身功能强大,但它们通常会与其他系统协同工作,并且需要配套应用来关联账号、授权数据访问权限、显示其他数据或配置用户偏好设置。
前提条件
启用了交互功能的 Google Chat 应用。如需创建交互式 Chat 应用,请根据您要使用的应用架构完成以下任一快速入门:- 使用 Google Cloud Functions 的 HTTP 服务
- Google Apps 脚本
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
向用户请求 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 会执行以下步骤:
- 清除向发起用户显示的提示。
- 将原始消息转换为公开消息,使其对聊天室的其他成员可见。
- 再次向同一 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
。
相关主题
- 接收和响应用户互动
- MyProfile 应用示例使用 Google 登录响应中的身份令牌来识别用户。