訂閱 Google Chat 活動

本頁面說明 Google Chat 應用程式可使用 Google Workspace Event API 訂閱的 Google Chat 事件。

如要進一步瞭解如何開發 Google Chat 應用程式,請參閱「 Google Chat API 總覽」。

支援的 Chat 目標資源

Google Workspace Event API 支援下列訂閱:

  • 聊天室,以 space 資源表示
  • 使用者,以 Cloud Identity API user 資源表示

支援的 Chat 事件

Google Workspace 訂閱可讓您在 Chat 中接收下列類型的異動事件:

  • 聊天室中的新訊息或全新訊息。
  • 新增或移除了訊息回應
  • 新增、更新或移除聊天室中的成員
  • 您已訂閱的聊天室變更,例如更新後的聊天室名稱或說明。

建立訂閱項目的事件類型

建立訂閱項目時,請使用 eventTypes[] 欄位指定要接收的事件類型。事件類型會根據 CloudEvents 規格 (例如 google.workspace.APPLICATION.RESOURCE.VERSION.ACTION) 設定格式。

舉例來說,如要接收有關使用者加入 Chat 聊天室的事件,您必須將聊天室指定為目標資源,事件類型則指定為 google.workspace.chat.membership.v1.created。如要接收有關特定使用者加入任何空間的事件,請將使用者指定為目標資源,而事件類型為 google.workspace.chat.membership.v1.created。如要進一步瞭解事件的運作方式,請參閱「Google Workspace 事件結構」。

下表列出聊天室訂閱和使用者訂閱支援的事件類型:

事件類型 說明 資源資料
聊天室訂閱  

google.workspace.chat.message.v1.created

有人張貼了新訊息。

space.message

google.workspace.chat.message.v1.updated

已更新訊息。

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

已在這個聊天室中建立 1 位成員。

space.membership

google.workspace.chat.membership.v1.updated

這個聊天室中的一位成員已更新。

space.membership

google.workspace.chat.membership.v1.deleted

已從這個聊天室中移除 1 位成員。

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

僅供輸出的事件類型

訂閱 google.workspace.APPLICATION.RESOURCE.VERSION.ACTION 事件類型會自動設定訂閱項目,一併接收該事件類型的批次版本。舉例來說,如果您訂閱了 google.workspace.chat.membership.v1.created,也會收到 google.workspace.chat.membership.v1.batchCreated 的事件。

下表為聊天室和使用者的訂閱項目分別輸出的事件類型:

事件類型 說明 資源資料

google.workspace.chat.message.v1.batchCreated

多則訊息會同時發布。

spaces.messages」的清單

google.workspace.chat.message.v1.batchUpdated

系統會同時更新多則訊息。

spaces.messages」的清單

google.workspace.chat.reaction.v1.batchCreated

系統會同時建立多個回應。

spaces.messages.reactions」的清單

google.workspace.chat.reaction.v1.batchDeleted

系統會同時刪除多個回應。

spaces.messages.reactions」的清單

google.workspace.chat.membership.v1.batchCreated

  • 如果 target_resource聊天室:系統會在聊天室中建立多位成員。
  • 如果 target_resource使用者:使用者將成為多個聊天室的成員。

spaces.memberships」的清單

google.workspace.chat.membership.v1.batchUpdated

  • 如果 target_resource聊天室:聊天室中的多位成員會更新。
  • 如果 target_resource使用者:使用者的聊天室成員資格有多項更新。

spaces.memberships」的清單

google.workspace.chat.membership.v1.batchDeleted

  • 如果 target_resource聊天室:系統會移除聊天室中的多位成員。
  • 如果 target_resource使用者:系統會將該使用者從多個聊天室中移除。

spaces.memberships」的清單

google.workspace.chat.space.v1.batchUpdated

聊天室中有多項更新。

spaces」的清單

事件資料

本節說明 Chat 事件的事件資料和範例酬載。

當您的 Google Workspace 訂閱收到 Chat 的事件時,data 欄位會包含該事件的酬載。此酬載包含已變更 Google Workspace 資源的相關資訊。舉例來說,如果您已訂閱聊天室中的成員事件,這些事件的酬載會包含變更的 spaces.membership 資源相關資訊。

事件酬載中的資源資料

建立訂閱項目時,您可以指定酬載包含資源的詳細資料,還是只加入資源名稱。舉例來說,如果您想在 Chat 聊天室中接收有關成員的事件,可以指定要在事件酬載中接收成員資源的哪些欄位。

下表提供 Chat 聊天室 spaces/AAAABBBBBB 訂閱項目的 JSON 酬載範例。針對訂閱項目收到的每個事件,酬載會顯示在事件的 data 欄位中:

範例 事件類型 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"
    }
}
      
使用者將聊天室說明更新為「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": "😊"
        }
    }
}
      
Omits 資源資料
{
    "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": "😸"
            }
          }
        }
    ]
}
      
Omits 資源資料
{
    "reactions": [
      {
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/1111111111111111.222222222222222"
        },
        "reaction": {
            "name": "spaces/AAAABBBBBB/messages/123456789.123456789/reactions/3333333333333333.444444444444444",
        }
      }
    ]
}