本部分介绍了您在构建和测试 Chat 应用时可能会遇到的常见问题。
卡片消息、对话框或链接预览无法按预期呈现或运行
如需有关卡片错误排查的帮助,请参阅排查和修正卡片问题。
应用没有响应
如果你向 Chat 应用发送消息,但应用回复“应用无响应”, 验证 Chat 应用的配置:
在 Google Cloud 控制台中,依次点击菜单 > 更多产品 > Google Workspace > 产品库 > Google Chat API > 管理 > 配置。
在应用状态下,确保您选择了已上线 - 可供用户使用。
在互动功能下,确保设置适合您应用的功能。如果您的 Chat 应用与用户互动,请务必开启启用交互功能:
- 如果您的应用会回复消息,请务必选择接收 1 对 1 消息。
- 在连接设置下,确保 HTTP 端点网址、Apps Script 项目部署 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 Workspace 组织。要构建
Chat 应用或 Chat API,则必须使用
Google Workspace
账号。
请注意,Google Chat 用户无需 Google Workspace 账号。详细了解用户如何发现和安装 Chat 扩展应用,请参阅发布 Google Chat 应用。
用户可能会被排除在聊天室之外
如果 Google Workspace 管理员禁止用户启用或停用 Chat 聊天记录,那么用户有时可能会无法加入或留在聊天室,因为强制开启或关闭聊天记录的用户级设置与继承了组织级强制设置的用户级设置存在冲突。
例如,如果用户的聊天记录设置被强制设为“开启”,而聊天室的聊天记录设置被强制设为“关闭”,那么该用户可能无法加入该聊天室。此外,如果用户在冲突发生前加入了聊天室,但在冲突发生后又在聊天室中发送了消息,那么系统可能会将该用户从聊天室中移除。
在这种情况下,以及聊天记录设置之间存在冲突的其他情况,Chat API 可能无法创建成员资格,或者创建包含用户身份验证的消息时,系统可能会从聊天室中移除已通过身份验证的用户,并将 Chat 聊天记录设置有冲突的用户。
有关详情,请参阅 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 Cloud 控制台中,转到 Cloud Functions 页面:
如需打开日志,请找到 Chat 应用的云端 函数,然后点击 显示操作 > 查看日志。
Logs Explorer 会打开并运行一个查询,显示 Cloud Functions 函数日志,包括错误。
如果记录的默认信息不足以调试您的应用,您可以通过 Cloud Functions 代码添加其他日志记录。请参阅查看和写入 Cloud 函数日志。
检查 Cloud Functions 函数错误
除了日志之外,Cloud Functions 函数可能还会报告运行时遇到的错误。
在 Google Cloud 控制台中,转到 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 函数是否允许未经身份验证的调用。了解如何允许对现有集群 请参阅 允许公开(未经身份验证)访问。