本页介绍了如何使用 Pub/Sub 创建 Chat 应用。如果您的组织有防火墙,可能会阻止 Chat 向您的 Chat 应用发送消息,或者如果 Chat 应用使用 Google Workspace Events API,那么这种 Chat 应用架构会非常有用。不过,由于这些聊天应用只能发送和接收异步消息,因此这种架构存在以下限制:
下图展示了使用 Pub/Sub 构建的聊天应用的架构:
在上图中,与 Pub/Sub Chat 应用互动的用户的信息流如下:
用户在 Chat 中通过私信或聊天室向 Chat 应用发送消息,或者 Chat 聊天室中发生 Chat 应用已有效订阅的事件。
聊天功能将消息发送到 Pub/Sub 主题。
应用服务器(即包含 Chat 应用逻辑的云端或本地系统)订阅 Pub/Sub 主题,以便通过防火墙接收消息。
Chat 应用可以选择调用 Chat API 来异步发布消息或执行其他操作。
前提条件
构建 Chat 应用时,您必须在 Google Cloud 控制台的 Chat API 配置页面中取消选中将此 Chat 扩展应用作为 Google Workspace 插件构建。请参阅将应用发布到 Google Chat。
Node.js
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请参阅验证项目的结算状态。如需创建项目并设置结算,请参阅创建 Google Cloud 项目。
- Node.js 14 或更高版本
- npm 软件包管理工具
-
已初始化的 Node.js 项目。如需初始化新项目,请创建并切换到新文件夹,然后在命令行界面中运行以下命令:
npm init
Python
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请参阅验证项目的结算状态。如需创建项目并设置结算,请参阅创建 Google Cloud 项目。
- Python 3.6 或更高版本
- pip 软件包管理工具
Java
- 拥有可访问 Google Chat 的 Google Workspace 商务版或企业版账号。
- 启用了结算功能的 Google Cloud 项目。如需检查现有项目是否已启用结算功能,请参阅验证项目的结算状态。如需创建项目并设置结算,请参阅创建 Google Cloud 项目。
- Java 11 或更高版本
- Maven 软件包管理工具
设置环境
在使用 Google API 之前,您需要在 Google Cloud 项目中启用它们。 您可以在单个 Google Cloud 项目中启用一个或多个 API。在 Google Cloud 控制台中,启用 Google Chat API 和 Pub/Sub API。
设置 Pub/Sub
创建一个 Pub/Sub 主题,供 Chat API 向其发送消息。建议您为每个 Chat 应用使用一个主题。
通过向以下服务账号分配 Pub/Sub 发布者角色,授予 Chat 发布权限: