本页将介绍如何使用以下工具创建 Chat 扩展应用: Pub/Sub。这种类型的 Chat 应用的架构非常有用 如果贵组织设有防火墙,则可能会阻止 Chat 向 Chat 应用发送消息,或者 Chat 应用会使用 Google Workspace Events API。不过, 架构存在以下局限性 聊天应用只能收发消息 异步消息:
下图显示了 使用 Pub/Sub 构建的聊天应用:
在上图中,用户与 Pub/Sub 进行交互 Chat 应用具有以下信息流:
用户在 Chat 中向 聊天应用(可通过私信或 Chat 聊天室,或 Chat 聊天室中发生的活动 且 Chat 应用已启用 订阅。
Chat 将消息发送到一个 Pub/Sub 主题。
一个应用服务器,可以是云系统或本地系统, 包含 Chat 应用逻辑,会订阅 Pub/Sub 主题以通过防火墙接收消息。
(可选)Chat 应用可以调用 用于异步发布消息或执行其他任务的 操作。
前提条件
Java
- Business 或 Enterprise 有权访问以下内容的 Google Workspace 账号: Google Chat。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请执行以下操作: 请参阅验证 项目的结算状态。如需创建项目并设置结算信息,请参阅 创建 Google Cloud 项目。
- Java 11 或更高版本
- Maven 软件包管理工具
Python
- Business 或 Enterprise 有权访问以下内容的 Google Workspace 账号: Google Chat。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请执行以下操作: 请参阅验证 项目的结算状态。如需创建项目并设置结算信息,请参阅 创建 Google Cloud 项目。
- Python 3.6 或更高版本
- pip 软件包管理工具
Node.js
- Business 或 Enterprise 有权访问以下内容的 Google Workspace 账号: Google Chat。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请执行以下操作: 请参阅验证 项目的结算状态。如需创建项目并设置结算信息,请参阅 创建 Google Cloud 项目。
- Node.js 14 或更高版本
- npm 软件包管理工具
-
一个已初始化的 Node.js 项目。要初始化新项目,请创建
切换到新文件夹,然后在命令行界面中运行以下命令:
npm init
设置环境
在使用 Google API 之前,您需要先在 Google Cloud 项目中启用这些 API。 您可以在单个 Google Cloud 项目中启用一个或多个 API。在 Google Cloud 控制台中,启用 Google Chat API 和 Pub/Sub API。
设置 Pub/Sub
创建 Pub/Sub 主题 Chat API 可向其发送消息的目标对象我们建议您使用 一个主题。
授予 Chat 发布权限 将 Pub/Sub Publisher 角色分配给以下人员,从而与该主题相关联: 服务账号:
chat-api-push@system.gserviceaccount.com
创建服务账号 让 Chat 应用通过 Pub/Sub 进行授权 聊天并将私钥文件保存到您的工作目录。
创建拉取订阅 与主题相关。
针对订阅分配 Pub/Sub Subscriber 角色 创建服务账号
编写脚本
Java
在 CLI 中,提供服务账号凭据:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中,提供 Google Cloud 项目 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供 创建下列实例:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在您的工作目录中,创建一个名为
pom.xml
的文件。在
pom.xml
文件中,粘贴以下代码:在您的工作目录中,创建目录结构
src/main/java
。在
src/main/java
目录中,创建一个名为Main.java
的文件。在
Main.java
中,粘贴以下代码:
Python
在 CLI 中,提供服务账号凭据:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中,提供 Google Cloud 项目 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供 之前创建的:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在您的工作目录中,创建一个名为
requirements.txt
的文件。在
requirements.txt
文件中,粘贴以下代码:在您的工作目录中,创建一个名为
app.py
的文件。在
app.py
中,粘贴以下代码:
Node.js
在 CLI 中,提供服务账号凭据:
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
在 CLI 中,提供 Google Cloud 项目 ID:
export PROJECT_ID=PROJECT_ID
在 CLI 中,提供 之前创建的:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
在您的工作目录中,创建一个名为
package.json
的文件。在
package.json
文件中,粘贴以下代码:在您的工作目录中,创建一个名为
index.js
的文件。在
index.js
中,粘贴以下代码:
将应用发布到 Chat
在 Google Cloud 控制台中,点击菜单 > API 和服务 > 已启用的 API 和服务 > Google Chat API > 配置。
配置适用于 Pub/Sub 的 Chat 应用:
- 在应用名称中,输入
Quickstart App
。 - 在头像网址中输入
https://developers.google.com/chat/images/quickstart-app-avatar.png
。 - 在说明中,输入
Quickstart app
。 - 在功能下方,选择接收 1 对 1 消息和加入聊天室和群组对话。
- 在连接设置下,选择 Cloud Pub/Sub,并将 您之前创建的 Pub/Sub 主题的名称。
- 在公开范围下方,选择将此 Google Chat 应用设为可供网域中的特定人员和群组使用,然后输入您的电子邮件地址。
- 在日志下,选择将错误记录到 Logging。
- 在应用名称中,输入
点击保存。
此应用可以在 Chat 中接收和回复消息了。
运行脚本
在 CLI 中,切换到您的工作目录并运行脚本:
Java
mvn compile exec:java -Dexec.mainClass=Main
Python
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
当您运行代码时,应用会开始监听已发布的消息 Pub/Sub 主题
测试您的 Chat 应用
如需测试您的 Chat 应用,请使用如下应用打开私信聊天室: Chat 应用并发送消息:
使用您用于登录的 Google Workspace 账号打开 Google Chat 在您添加为可信测试员时提供的凭据。
- 点击 发起新对话。
- 在添加一人或多人字段中,输入 Chat 应用。
从结果中选择您的 Chat 应用。直接客户 消息会打开。
- 在与该应用的新私信对话中,输入“
Hello
”,然后按enter
。
如需添加可信测试员,并详细了解如何测试互动功能,请参阅 测试适用于以下应用的互动功能: Google Chat 应用。
问题排查
当 Google Chat 应用或 card 会返回错误, 聊天界面会显示一条内容为“出了点问题”的消息。 或“无法处理您的请求”。有时,Chat 界面 不会显示任何错误消息,但 Chat 应用或 卡片会产生意外结果;例如,卡片消息 。
虽然 Chat 界面中可能不会显示错误消息, 提供描述性错误消息和日志数据,以帮助您修正错误 启用 Chat 应用的错误日志记录时。如需观看方面的帮助, 请参阅 排查并修正 Google Chat 错误。
清理
为避免系统因 我们建议您删除 Cloud 项目中。
-
在 Google Cloud 控制台中,前往管理资源页面。点击
菜单 > IAM 和管理员
> 管理资源。
<ph type="x-smartling-placeholder"></ph> 前往 Resource Manager
- 在项目列表中,选择要删除的项目,然后点击 删除 。
- 在对话框中输入项目 ID,然后点击关停以删除项目 项目。
相关主题
如需为您的 Chat 应用添加更多功能,请参阅 以下: