处理 Google Chat 中的活动

本页介绍了 Google Chat 应用如何接收和响应 Google Chat 中的活动。

Google Chat 事件表示 Chat 中的一项活动或更改。 例如聊天室中的新消息。Chat 扩展应用可使用 了解发生的情况,并采取行动或以有意义的 为用户提供更好的使用体验

以下示例说明了如何使用事件:

  • 监控并回复聊天室中的新消息,例如检查按键 字词或短语。
  • 在用户加入聊天室时向他们发送欢迎消息,以说明聊天室 或分享有关如何有效使用 Chat 应用。
  • 跟踪和分析 Chat 活动。例如,要发送 关于新会员或获得最多消息的每月报告 回应或回复。
  • 跨即时通讯平台进行沟通。例如,用户可以向 以及接收其他即时通讯平台上的用户发来的消息 退出 Chat。

事件的运作方式

每当 Google Chat 中发生问题,Google Chat API 资源就会 创建、更新或删除Chat 使用事件来递送 向 Chat 应用发送有关 发生的活动,以及受影响的 Chat API 资源。

展示发布到 Google Chat 聊天室的消息如何触发事件的示例。
图 1.用户在 Chat 聊天室,会创建一项 Message 资源。 然后,Chat 会创建一个活动,其中包含有关新 消息。

Chat 会按类型对活动进行分类。事件类型可帮助您 只接收您需要的信息类型,还能让您处理类似的 activity。

下表显示了 Chat 中的活动对 相关 Chat API 资源,以及您安排 Chat 应用会收到:

活动 Chat API 资源 事件类型
用户在 Chat 聊天室中发布了消息 系统会创建 Message 资源。 新信息
用户成为聊天室管理员。 Membership 资源已更新。 已更新会员资格
用户对消息做出了回应。 系统会创建 Reaction 资源。 新回应
用户退出聊天室。 删除了 Membership 资源。 已删除成员资格

接收来自 Google Chat 的事件

如要接收事件,您的 Chat 应用可以执行以下任一操作 以下:

  • 使用 Google Workspace Events API 订阅事件以接收事件 生成相应的文件
  • 通过调用 Chat API 查询近期事件。

下表解释了查询或 订阅事件:

订阅事件 查询事件
使用场景
  • 实时处理或响应事件。
  • 监控用户的以及发现新聊天室以 监控。
  • 定期或通过触发器处理或响应事件。
  • 从订阅中提取错过的事件(由于服务中断或 无效订阅)。
API Google Workspace Events API Chat API
事件来源 聊天室和用户 仅限聊天室
支持的事件
  • 消息
  • 会员
  • 回应
  • 空格

有关支持的事件类型的列表,请参阅 在 Google Ads 中创建订阅的事件类型 Google Workspace Events API 文档。
  • 消息
  • 会员
  • 回应
  • 空格

有关支持的事件类型的列表,请参阅 Chat API 中的 spaceEvents 资源 参考文档。
事件格式 Google Cloud Pub/Sub 消息,根据 CloudEvent 规范。有关详情,请参阅 Google Workspace 活动的结构 Chat API 资源 ( spaces.spaceEvent)
事件数据 Base64 编码的字符串,无论是否包含资源数据。如需查看载荷示例,请参阅事件数据 包含资源数据的 JSON 载荷。某些事件类型仅包含特定资源字段。有关载荷示例,请参阅 参考文档

示例:查询或订阅有关聊天室成员的事件

在此示例中,Chat 应用想要接收 有关 Chat 聊天室成员更改的信息。在 在聊天室中,会发生以下成员资格活动:

  • 用户加入聊天室,这会创建一个 Membership 资源并触发 新成员事件。
  • 用户成为聊天室管理员,这会更新以下内容的 Membership 资源: 用户,并触发更新后的成员事件。
  • 用户离开聊天室,这会删除聊天室的 Membership 资源 触发成员删除事件

订阅会员活动

为了实时接收事件, Chat 应用调用 Google Workspace Events API subscriptions.create() 方法订阅所有类型的会员活动的空间。更新后 创建订阅,Chat 应用就可以开始 来接收会员事件

使用
      Google Workspace Events API。
图 2.Chat 应用 使用 Google Workspace Events API。

在图 2 中,Chat 应用有一个针对 因此,每当聊天室中的成员加入时,应用都会收到一个事件 更改。然后,Chat 应用就可以处理或回复 实时参与任何活动,例如向 加入聊天室的成员。

如需了解如何使用 Google Workspace Events API 创建订阅, 请参阅 Google Workspace Events API 文档

查询近期的会员活动

与发生会员事件时相比, Chat 应用可以调用 Chat API 来列出 与会员活动相关的近期空间活动。

可使用 Chat 扩展应用查询活动
        Chat API。
图 3. 答 Chat 应用通过以下方式接收近期的会员事件: 来查询聊天室活动。

在图 3 中,Chat 应用调用 Chat API spaces.spaceEvents.list() 方法,并过滤查询 。Chat API 会返回 spaceEvent 资源的列表,代表每项成员资格变更。 然后,Chat 应用可以根据 近期活动,例如每周发布一次带有 聊天室在过去 7 天内的成员资格活动。

如需使用 Chat API 查询事件,请参阅 列出 Google Chat 聊天室中的活动

限制

  • 对于用户的订阅、私信或未命名群聊 (google.workspace.chat.membership.v1.created) 中新成员的相关活动, 仅在第一条消息发布后触发。
  • 要接收会员活动,用户必须是聊天室的直接成员。如果添加了用户 通过 Google 群组更新或间接移除了聊天室中,订阅不会 来接收这些会员事件要了解 Google 群组成员资格的运作方式,请参阅 向聊天室添加 Google 群组