使用 Pub/Sub 构建在防火墙后的 Google Chat 应用

本页介绍了如何使用 Pub/Sub 创建 Chat 应用。如果您的组织有防火墙,可能会阻止 Chat 向您的 Chat 应用发送消息,或者如果 Chat 应用使用 Google Workspace Events API,那么这种 Chat 应用架构会非常有用。不过,由于这些聊天应用只能发送和接收异步消息,因此这种架构存在以下限制:

  • 无法在消息中使用对话框。请改用卡片消息
  • 无法使用同步响应更新各个卡片。请改为调用 patch 方法来更新整个消息。

下图展示了使用 Pub/Sub 构建的聊天应用的架构:

使用 Pub/Sub 实现的 Chat 应用的架构。

在上图中,与 Pub/Sub Chat 应用互动的用户的信息流如下:

  1. 用户在 Chat 中通过私信或聊天室向 Chat 应用发送消息,或者 Chat 聊天室中发生 Chat 应用已有效订阅的事件。

  2. 聊天功能将消息发送到 Pub/Sub 主题。

  3. 应用服务器(即包含 Chat 应用逻辑的云端或本地系统)订阅 Pub/Sub 主题,以便通过防火墙接收消息。

  4. Chat 应用可以选择调用 Chat API 来异步发布消息或执行其他操作。

前提条件

构建 Chat 应用时,您必须在 Google Cloud 控制台的 Chat API 配置页面中取消选中将此 Chat 扩展应用作为 Google Workspace 插件构建。请参阅将应用发布到 Google Chat

Node.js

Python

Java

设置环境

在使用 Google API 之前,您需要在 Google Cloud 项目中启用它们。 您可以在单个 Google Cloud 项目中启用一个或多个 API。
  • 在 Google Cloud 控制台中,启用 Google Chat API 和 Pub/Sub API。

    启用 API

设置 Pub/Sub

  1. 创建一个 Pub/Sub 主题,供 Chat API 向其发送消息。建议您为每个 Chat 应用使用一个主题。

  2. 通过向以下服务账号分配 Pub/Sub 发布者角色,授予 Chat 发布权限