订阅 Google Chat 活动

本页面介绍了 Google Chat 应用提供的 Google Chat 活动。 可以使用 Google Workspace Events API 进行订阅。确定好 事件类型,请创建 订阅以开始接收 Google Chat 中的活动。

除了订阅事件之外,您还可以通过调用 Chat API。调用 Chat API 可让 您可以定期检索活动, 针对因服务中断而可能错过的订阅事件的详细信息。学习内容 接收和响应 Chat 事件的方式,请参阅 在以下位置处理来自 Google Chat 的活动: Chat 文档。

支持的 Chat 事件

订阅 Google Workspace 后,您可以接收 Chat 的以下变化类型:

  • 新、更新或已删除的消息
  • 新增或已移除的回应 消息。
  • 新增、更新或移除的成员
  • 聊天室的更改 例如更新后的聊天室名称或说明。

可监控事件的资源

如要接收事件,请指定要监控的 Chat 资源。 (称为订阅的目标资源)。

Google Workspace Events API 支持以下目标资源 对于 Chat:

目标资源 格式 限制
空格

//chat.googleapis.com/spaces/SPACE

其中 SPACE 资源名称space 您可以从聊天室的网址获取该 ID,也可以使用 <ph type="x-smartling-placeholder"></ph> spaces.list() 方法。

对订阅进行授权的 Chat 用户必须符合以下条件 通过 Google Workspace 或 Google Workspace 成为聊天室成员 账号。
用户的所有聊天室

//chat.googleapis.com/spaces/-

订阅仅接收用户所在聊天室的事件 通过 Google Workspace 或 Google 账号向成员授予相应权限。
用户

//cloudidentity.googleapis.com/users/USER

其中 USER 资源名称user 有关详情,请参阅 标识并指定 Google Chat 用户

订阅仅接收 对订阅进行了授权。用户无法在以下设备上授权订阅: 代表其他用户。

用于创建订阅的事件类型

创建订阅时,您可以使用 eventTypes[] 字段指定要接收哪些类型的事件。事件类型包括 符合 CloudEvents 规范的格式,例如 google.workspace.APPLICATION.RESOURCE.VERSION.ACTION

例如,接收有关用户加入 Chat 的事件 则需要将聊天室指定为目标资源,并将事件类型指定为 google.workspace.chat.membership.v1.created。要接收与给定 用户可以加入任何聊天室,您可以将该用户指定为目标资源,并且 事件类型为 google.workspace.chat.membership.v1.created。要详细了解 活动的运作方式,请参阅 Google Workspace 的结构 事件

下表显示了订阅支持的事件类型 聊天室和用户的订阅。想要了解 哪些因素会触发事件,请参阅限制

Event type 格式 资源数据
聊天室订阅  
消息已发布。

google.workspace.chat.message.v1.created

space.message

消息已更新。

google.workspace.chat.message.v1.updated

space.message

消息被删除。

google.workspace.chat.message.v1.deleted

space.message

系统会创建回应。

google.workspace.chat.reaction.v1.created

space.message.reaction

系统会删除回应。

google.workspace.chat.reaction.v1.deleted

space.message.reaction

系统会将一位成员添加到聊天室。

google.workspace.chat.membership.v1.created

space.membership

有成员在聊天室中更新。

google.workspace.chat.membership.v1.updated

space.membership

系统会将一位成员从聊天室中移除。

google.workspace.chat.membership.v1.deleted

space.membership

聊天室已更新。

google.workspace.chat.space.v1.updated

space

聊天室已被删除。

google.workspace.chat.space.v1.deleted

space

用户的订阅  
用户会成为聊天室成员。

并非所有新成员都会触发事件。如需了解详情,请参阅限制

google.workspace.chat.membership.v1.created

space.membership

系统会更新该用户在聊天室中的成员资格。

google.workspace.chat.membership.v1.updated

space.membership

该用户不再是聊天室的直接成员。

google.workspace.chat.membership.v1.deleted

space.membership

批量事件类型(仅限输出)

除了接收您订阅的事件类型外,您的 Chat 应用也可能会接收批量事件。批量事件 是一种事件,表示短时间内发生的许多相同类型的事件 。批量事件的载荷包含所有已更改 资源。

例如,如果用户同时将 20 位用户添加到聊天室,您的 Chat 应用可能会收到批量事件 (google.workspace.chat.membership.v1.batchCreated).事件载荷包含 一个列表,其中包含在访问用户时创建的所有新 Membership 资源 已将成员添加到聊天室。

您订阅的任何事件类型都会收到批处理事件,因此 则不必在创建订阅时指定批量事件对于 例如,如果您订阅了新的回应 (google.workspace.chat.reaction.v1.created)、您的 Chat 应用已自动配置为批量接收 回应事件 (google.workspace.chat.reaction.v1.batchCreated)。

下表显示了订阅可能的批量事件:

批量事件类型 格式
发布了多条消息。

google.workspace.chat.message.v1.batchCreated

系统会更新多条消息。

google.workspace.chat.message.v1.batchUpdated

系统会删除多封邮件。

google.workspace.chat.message.v1.batchDeleted

系统会创建多个回应。

google.workspace.chat.reaction.v1.batchCreated

系统会删除多条回应。

google.workspace.chat.reaction.v1.batchDeleted

多个成员被添加到订阅的聊天室中,或者订阅的用户被添加到多个聊天室。

google.workspace.chat.membership.v1.batchCreated

系统会在订阅聊天室中更新多个成员资格,或者为订阅用户更新多个成员资格。

google.workspace.chat.membership.v1.batchUpdated

系统会将多个成员从订阅的聊天室中移除,或者将订阅的用户从多个聊天室中移除。

google.workspace.chat.membership.v1.batchDeleted

此聊天室有多项更新。

google.workspace.chat.space.v1.batchUpdated

事件数据

本部分介绍了事件数据和示例载荷, 聊天。

您的 Google Workspace 订阅收到以下事件的事件: 聊天, data 字段包含事件的负载。此载荷包含 发生更改的 Google Workspace 资源。例如,如果您订阅了 成员资格事件,这些活动的载荷会包含信息 关于 spaces.membership 更改的资源

事件载荷中的资源数据

创建订阅时,您可以指定是否要将载荷 包括有关资源的详细信息,或只包含资源的名称。对于 例如,如果您想接收 则可以指定要接收成员资格资源的哪些字段 事件载荷中

下表提供了 Chat 聊天室“spaces/AAAABBBBBB”。对于 订阅接收后,载荷会显示在事件的 data 字段中:

示例 Event type JSON 载荷

用户在聊天室中发布一条内容为“Hello world”的消息。

google.workspace.chat.message.v1.created

包含资源数据
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD",
        "sender":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "2023-09-07T21:37:36.260127Z",
        "text": "Hello world",
        "thread":
        {
            "name": "spaces/AAAABBBBBB/threads/EEEEEEEEEEEE"
        },
        "space":
        {
            "name": "spaces/AAAABBBBBB"
        },
        "argumentText": "Hello world"
    }
}
      
不包括资源数据
{
    "message":
    {
        "name": "spaces/AAAABBBBBB/messages/CCCCCCCCC.DDDDDDDDD"
    }
}
      
用户成为聊天室管理员。

google.workspace.chat.membership.v1.updated

包含资源数据
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321",
        "state": "JOINED",
        "member":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "createTime": "1970-01-01T00:00:00Z",
        "role": "ROLE_MANAGER"
    }
}
      
不包括资源数据
{
    "membership":
    {
        "name": "spaces/AAAABBBBBB/members/1234567890987654321"
    }
}
      
用户将聊天室说明更新为“Sales team for Cymbal Labs”。 google.workspace.chat.space.v1.updated
包含资源数据
{
    "space":
    {
        "name": "spaces/AAAABBBBBB",
        "displayName": "Cymbal Sales",
        "spaceThreadingState": "THREADED_MESSAGES",
        "spaceType": "SPACE",
        "spaceDetails":
        {
            "description": "Sales team for Cymbal Labs."
        },
        "spaceHistoryState": "HISTORY_ON"
    }
}
      
不包括资源数据
{
    "space":
    {
        "name": "spaces/AAAABBBBBB"
    }
}
      
此聊天室同时添加了两名 Chat 用户。 google.workspace.chat.membership.v1.batchCreated
包含资源数据
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321",
            "state": "JOINED",
            "member":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/987654321234567890",
            "state": "JOINED",
            "member":
            {
                "name": "users/987654321234567890",
                "type": "HUMAN"
            },
            "createTime": "1970-01-01T00:00:00Z",
            "role": "ROLE_MEMBER"
          }
        }
    ]
}
      
不包括资源数据
{
    "memberships": [
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/1234567890987654321"
          }
        },
        {
          "membership": {
            "name": "spaces/AAAABBBBBB/members/98765432123456789019"
          }
        }
    ]
}
      
用户使用 😊? 表情符号回应消息。 google.workspace.chat.reaction.v1.created
包含资源数据
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
        "user":
        {
            "name": "users/1234567890987654321",
            "type": "HUMAN"
        },
        "emoji":
        {
            "unicode": "😊"
        }
    }
}
      
省略资源数据
{
    "reaction":
    {
        "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
    }
}
      
用户使用 😊? 表情符号和 😸? 表情符号来回应消息。 google.workspace.chat.reaction.v1.batchCreated
包含资源数据
{
    "reactions": [
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222",
            "user":
            {
                "name": "users/1234567890987654321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😊"
            }
          }
        },
        {
          "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
            "user":
            {
                "name": "users/98765431234564321",
                "type": "HUMAN"
            },
            "emoji":
            {
                "unicode": "😸"
            }
          }
        }
    ]
}
      
省略资源数据
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}
      

限制

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