排查并修正 Google Chat 应用错误

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

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

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

应用无响应

如果您向 Chat 应用发送消息,并且该应用响应“应用无响应”,请验证 Chat 应用的配置:

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

    前往 Chat API

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

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

    1. 如果您的应用会回复消息,请确保您选择接收 1 对 1 消息
    2. 连接设置下,确保应用网址、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 聊天记录设置强制设为“开启”,而某个聊天室的聊天记录设置被强制设为“关闭”,则该用户可能无法加入该聊天室。此外,如果用户在冲突前加入聊天室,并在冲突结束后在聊天室中发布消息,系统可能会将该用户从聊天室中移除。

在这种情况下,以及聊天记录设置之间存在冲突的其他情况,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 应用

排查 Cloud Functions 函数错误

如果聊天应用是通过 Cloud Functions 实现的,但无法正常运行,请参阅以下部分来排查和解决问题。

查看 Cloud Functions 函数日志

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

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

    转到 Cloud Functions

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

日志浏览器会打开并运行显示 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_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 函数进行未经身份验证的调用,请参阅允许公开(未经身份验证)访问