訂閱 Google Chat 活動

本頁面說明 Google Chat 應用程式可使用 Google Workspace Events API 訂閱的 Google Chat 事件。決定所需的事件類型後,請建立訂閱項目,開始從 Google Chat 接收事件。

除了訂閱事件外,您也可以呼叫 Chat API 來查詢事件。呼叫 Chat API 可讓您定期擷取事件,或掌握訂閱方案因服務中斷而可能錯過的事件。如要瞭解接收及回應 Chat 事件的方式,請參閱 Chat 說明文件中的「使用 Google Chat 中的事件」。

支援的 Chat 目標資源

Google Workspace 活動 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.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

事件資料

本節說明 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"
    }
}
      
聊天室中同時有 2 位 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.workspace.chat.spaces.v1.updated)。
  • 使用者必須是聊天室的直接成員,才能接收成員資格活動。如果使用者透過 Google 群組間接新增、更新或移除聊天室,訂閱項目不會收到這些成員資格事件。如要瞭解 Google 網路論壇成員資格的運作方式,請參閱「將 Google 群組新增至聊天室」。