本页介绍了如何将 Google Chat 应用与 Google Chat 之外的服务或工具相关联。虽然聊天应用本身功能强大,但它们通常与其他系统协同工作,并且需要配套应用来关联账号、授权数据访问、显示其他数据或配置用户偏好设置。
前提条件
已配置为接收和响应互动事件的 Google Chat 应用。如需创建交互式 Chat 应用,请根据要使用的应用架构完成以下任一快速入门 Codelab:- 使用 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
、ADDED_TO_SPACE
和 APP_COMMAND
互动事件还包含 configCompleteRedirectUrl
字段。您必须对配置网址中的此网址进行编码,以便在流程完成后使用。重定向到此网址会向 Google Chat 表明配置请求已完成。
当 Chat 应用启动时,流程取决于收到的具体消息。对于 @app help
之类的消息,Chat 应用应做出响应,而无需进行额外配置。
当用户成功重定向到原始消息中提供的 configCompleteRedirectUrl
时,Google Chat 会执行以下步骤:
- 清除向发起用户显示的提示。
- 将原始消息转换为公开消息,使聊天室的其他成员能够看到该消息。
- 将原始消息再次发送到同一 Chat 应用。
访问 configCompleteRedirectUrl
只会影响单个用户消息。
如果用户多次尝试向聊天应用发送消息,并因此收到多条提示,那么点击特定提示并完成身份验证和配置流程只会影响该特定消息。其他消息不会发生变化。
以这种方式重新发送 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 登录响应中的身份令牌来识别用户。