排查并修正 Google Chat 应用错误

本部分介绍了在构建和测试 Chat 应用时可能会遇到的常见问题。

卡片消息、对话框或链接预览未按预期呈现或运行

如需有关卡片错误排查的帮助,请参阅排查和修复卡片

应用无响应

如果您向 Chat 应用发送消息后,该应用回复“应用未响应”,请验证 Chat 应用的配置:

  1. 在 Google Cloud 控制台中,依次点击菜单 > 更多产品 > Google Workspace > 产品库 > Google Chat API > 管理 > 配置

    前往 Chat API

  2. 应用状态下,确保您已选择已上线 - 可供用户使用

  3. 互动功能下,确保设置适合您应用的功能。如果您的 Chat 应用会与用户互动,请务必开启启用互动功能

    1. 默认情况下,应用可以回复用户的私信。
    2. 如果您的应用会回复聊天室和群聊中的消息,请选择加入聊天室和群组对话
    3. 连接设置下,确保 HTTP 端点网址、Apps 脚本项目部署 ID、Cloud Pub/Sub 主题名称或 Dialogflow 代理已正确设置并已部署。
    4. 公开范围下,确保相应用户可以通过电子邮件地址或 Google Workspace 网域中的群组访问该应用。如果应用是使用 Google Workspace Marketplace SDK 部署的,则无需设置公开范围,因为 Google Workspace Marketplace 设置具有优先权。
  4. 如果应用是使用 Google Workspace Marketplace SDK 发布的,请检查 Google Workspace Marketplace 设置。

  5. 点击保存

  6. 请尝试再次向该应用发送消息。

只有 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 API 可能无法创建成员资格,或者创建包含用户身份验证的消息可能会导致具有冲突的 Chat 聊天记录设置的已验证用户被移出聊天室。

如需了解详情,请参阅 Google Workspace 管理员帮助中心内的用户可能会被排除在聊天室之外的情况

排查 Google Apps 脚本中的高级聊天服务问题

请参阅有关高级聊天服务的 Apps 脚本页面。

用户无法将 Chat 应用添加到聊天室

如果用户在尝试向聊天室添加 Chat 应用时遇到错误消息 This organization's administrator must allow users to install this Chat app,则此错误可能是由以下原因之一造成的:

  • 组织已停用 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 管理员尚未向 Google Chat 应用授予一次性批准,以使用以名称 https://www.googleapis.com/auth/chat.app.* 开头的授权范围。

如需解决此错误,请执行以下操作:

排查 Cloud Functions 函数错误

如果聊天应用是使用 Cloud Functions 实现的,但无法正常运行,以下部分可帮助您排查和解决问题。

查看 Cloud Functions 日志

首先,检查 Cloud Functions 日志中是否存在错误。

  1. 在 Google Cloud 控制台中,转到 Cloud Functions 页面:

    转到 Cloud Functions

  2. 如需打开日志,请找到 Chat 应用的 Cloud Functions 函数,然后依次点击显示操作 > 查看日志

系统会打开 Logs Explorer 并运行一个查询,以显示 Cloud Functions 日志(包括错误)。

如果记录的默认信息不足以调试应用,您可以从 Cloud Functions 代码中添加额外的日志记录。请参阅查看和写入 Cloud Functions 函数日志

检查 Cloud Functions 函数错误

除了日志之外,Cloud Functions 函数还可能会报告在运行过程中遇到的错误。

  1. 在 Google Cloud 控制台中,转到 Cloud Functions 页面:

    转到 Cloud Functions

  2. 点击 Chat 应用的 Cloud Functions 函数。

  3. 在“函数详情”页面上,错误会列在错误下方。

  4. 如需进一步排查错误,请点击相应错误。

修正常见的 Cloud Functions 错误

使用 Cloud Functions 构建聊天应用时,有时会遇到以下错误。

项目 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 Function 函数。为“allUsers”授予“Cloud Functions 调用者”角色意味着,为应用提供支持的 Cloud Functions 函数是公开的,并且无需身份验证即可访问。如需了解如何分配角色,请参阅授予单个角色

此错误可能意味着 Google Cloud 项目受到网域限制。如需详细了解网域限制条件,请参阅按网域限制身份

如需解决此问题,请验证您的 Cloud Functions 函数是否允许未经身份验证的调用。如需了解如何允许对现有 Cloud Functions 函数进行未经身份验证的调用,请参阅允许公开(未经身份验证)访问