排查并修正 Google Chat 应用错误

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

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

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

应用无响应

如果您向 Chat 应用发送消息,但收到“应用无响应”的回复,请检查 Chat 应用的配置:

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

    前往 Chat API

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

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

    1. 如果您的应用会回复消息,请务必选择接收 1 对 1 消息
    2. 连接设置下,确保 HTTP 端点网址、Apps 脚本项目部署 ID、Cloud Pub/Sub 主题名称或 Dialogflow 代理已正确设置并已部署。
    3. 公开范围下,确保相应用户可以通过电子邮件地址或 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 的聊天记录功能,那么有时由于强制开启或关闭聊天记录的用户级设置与沿用组织级强制设置的用户级设置存在冲突,用户有时可能无法加入或留在聊天室。

例如,如果用户的聊天记录设置被强制设为“开启”,而聊天室的聊天记录设置被强制设为“关闭”,那么该用户可能无法加入该聊天室。此外,如果该用户在冲突前加入聊天室,然后在冲突后在聊天室中发帖,则系统可能会将相应用户从聊天室中移除。

在这种情况下以及聊天记录设置之间存在冲突的其他情况下,Chat API 可能无法创建成员资格,或者通过用户身份验证创建消息可能会将具有冲突 Chat 聊天记录设置的已验证用户从聊天室中移除。

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

在 Google Apps Script 中排查高级聊天服务问题

请参阅 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 日志中是否存在错误。

  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 构建 Chat 应用时,有时会遇到以下错误。

项目 PROJECT_NAMEREGION_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 函数进行未经身份验证的调用,请参阅允许公开(未经身份验证)访问