本部分介绍了在构建和测试 Chat 应用时可能会遇到的常见问题。
卡片消息、对话框或链接预览无法按预期呈现或运行
如需获得有关排查卡片错误的帮助,请参阅排查和修复卡片。
应用无响应
如果您向 Chat 应用发送消息,但该应用回复“应用无响应”,请验证 Chat 应用的配置:
在 Google API 控制台中,依次点击菜单 > API 和服务 > 已启用的 API 和服务 > Google Chat API > 配置。
在应用状态下,确保您选择了已上线 - 可供用户使用。
在互动功能下,确保设置适合您应用的功能。如果您的 Chat 应用与用户互动,请确保开启启用互动功能:
- 默认情况下,应用可以回复用户的私信。
- 如果您的应用回复聊天室和群聊中的消息,请选择加入聊天室和群组对话 。
- 在连接设置下,确保HTTP 端点网址、Apps 脚本项目部署 ID、Cloud Pub/Sub 主题名称或 Dialogflow 代理设置正确且已部署。
- 在公开范围下,确保相应用户有权通过电子邮件地址或 Google Workspace 网域中的群组访问该应用。如果应用是使用 Google Workspace Marketplace SDK 部署的,则无需进行公开范围设置,因为 Google Workspace Marketplace 设置优先。
如果应用是使用 Google Workspace Marketplace SDK 发布的,请查看 Google Workspace Marketplace 设置。
点击保存 。
尝试再次向该应用发送消息。
只有 Google Workspace 用户可以使用 Google Chat API
配置 Chat 应用时,您可能会收到错误 Google Chat API is only available to Google Workspace users。此消息表示您用于配置 Chat API 的 Google 账号不属于 Google Workspace 组织。如需构建
Chat 应用或使用 Chat API,您必须使用
Google Workspace
账号。
请注意,Google Chat 用户无需 Google Workspace 账号即可使用 Chat 应用。如需详细了解用户如何发现和安装 Chat 应用,请参阅 构建互动式 Google Chat 应用。
用户可能会被排除在聊天室之外的情况
如果 Google Workspace 管理员禁止用户开启或关闭 Chat 聊天记录,那么有时用户可能无法加入聊天室或可能会被移出聊天室,这是因为强制开启或关闭聊天记录的用户级设置与继承组织级强制设置的聊天室之间存在冲突。
例如,如果用户强制开启了 Chat 聊天记录,而聊天室强制关闭了 Chat 聊天记录,那么该用户可能无法加入该聊天室。此外,如果该用户在冲突发生之前加入了聊天室,然后在冲突发生之后在该聊天室中发布了消息,则可能会被移出该聊天室。
在这种情况下以及其他聊天记录设置冲突的情况下,Chat API 可能无法创建成员资格,或者使用用户身份验证创建消息可能会从聊天室中移除聊天记录设置与聊天室冲突的经过身份验证的用户。
如需了解详情,请参阅 Google Workspace 管理员帮助中心内的用户可能会被排除在聊天室之外的情况。
排查 Google Apps 脚本中的高级聊天服务问题
请参阅 Apps 脚本页面上有关 高级聊天服务的内容。
用户无法将 Chat 应用添加到聊天室
如果用户在尝试将 Chat 应用添加到聊天室时遇到错误消息
This organization's administrator must allow users to install this Chat app
,则此错误
可能是由以下原因之一造成的:
- 组织已停用 Chat 应用。
- 组织尚未将此特定 Chat 应用添加到组织的允许名单。
如果用户在尝试与 Chat 应用互动时遇到此错误消息,则可能是因为组织向子组织部门授予了访问权限,但未为父组织部门启用该权限。
如需了解如何解决此问题,请参阅 允许用户安装 Chat 应用。
管理员必须向应用授予此操作所需的 OAuth 授权范围
以 Chat 应用身份进行身份验证时, 您可能会收到以下错误:
<HttpError 403 when requesting https://chat.googleapis.com/v1/spaces/{space}?alt=json returned "The administrator must grant the app the required OAuth authorization scope for this action.". Details: "The administrator must grant the app the required OAuth authorization scope for this action.">
此错误消息表示 Google Workspace 管理员尚未向 Chat 应用授予一次性批准,以使用以名称 https://www.googleapis.com/auth/chat.app.* 开头的授权范围。
如需解决此错误,请执行以下操作:
- 请 Google Workspace 管理员向您的 Chat 应用授予批准。在 Chat 应用逻辑中处理此错误时,请考虑发送一条消息,告知用户 Chat 应用需要管理员批准才能执行所请求的操作,例如:
To perform this action, I need approval. <https://support.google.com/a?p=chat-app-auth|Learn more>. - 如果 Chat API 方法支持
https://www.googleapis.com/auth/chat.bot授权范围(无需管理员批准),请考虑改用该范围。如需查看方法支持哪些 授权范围,请参阅 对 Google Chat 应用和 Google Chat API 请求进行身份验证和授权。
排查 Cloud Functions 函数错误
如果 Chat 应用是使用 Cloud Functions 实现的,并且无法正常运行,请参阅以下部分来排查和解决问题。
检查 Cloud Functions 函数日志
首先,检查 Cloud Functions 函数日志中是否存在错误。
在 Google API 控制台中,前往 Cloud Functions 页面:
如需打开日志,请找到 Chat 应用的 Cloud Functions 函数,然后依次点击 显示操作 > 查看日志。
Logs Explorer 会打开并运行查询,以显示 Cloud Functions 函数日志,包括错误。
如果记录的默认信息不足以调试应用,您可以从 Cloud Functions 函数代码中添加其他日志记录。请参阅查看和写入 Cloud Functions 函数日志。
检查 Cloud Functions 函数错误
除了日志之外,Cloud Functions 函数还可能会报告在运行时遇到的错误。
在 Google API 控制台中,前往 Cloud Functions 页面:
点击 Chat 应用的 Cloud Functions 函数。
在函数详情页面上,错误会列在错误 下。
如需进一步排查错误,请点击该错误。
修复常见的 Cloud Functions 函数错误
使用 Cloud Functions 构建 Chat 应用时,有时会遇到以下错误。
项目 PROJECT_NAME 中区域 REGION_NAME 内的函数 ChatApp 已存在
部署 Cloud Functions 函数时,您可能会收到错误 Function
ChatApp in region REGION_NAME in project PROJECT_NAME already
exists。此消息表示另一个 Cloud Functions 函数与您要部署的函数同名。更改名称,然后重新部署该函数。验证 Chat 应用使用的是 Cloud Functions 函数的触发器网址,而不是预先存在的 Cloud Functions 函数的触发器网址。
政策中命名的一个或多个用户不属于允许的客户
部署 Cloud Functions 函数时,您可能会收到错误 The operation
cannot be completed on the function: "One or more users named in the policy do
not belong to a permitted customer."。如果您收到此错误,然后向
Chat 应用发送消息,则会收到一条错误消息,指出该应用无响应,因为 Google
Chat 无法访问托管 Cloud Functions 函数的服务器。此消息表示名为“allUsers”的用户无权调用 Cloud Functions 函数。
为“allUsers”授予“Cloud Functions Invoker”角色意味着,为应用提供支持的 Cloud Functions 函数是公开的,并且无需身份验证即可访问。如需了解如何分配角色,请参阅
授予单个角色。
此错误可能表示 Google Cloud 项目受到网域限制。如需详细了解网域限制条件,请参阅 按网域限制身份。
如需解决此问题,请验证 Cloud Functions 函数是否允许未经身份验证的调用。如需了解如何允许对现有 Cloud Functions 函数进行未经身份验证的调用,请参阅 允许公开(未经身份验证)访问。