本頁說明 Chat 應用程式可使用 Google Workspace Events API 訂閱的 Chat 事件。決定所需事件類型後,請建立訂閱項目,開始接收 Chat 的事件。
除了訂閱事件,您也可以呼叫 Google Chat API 查詢事件。呼叫 Chat API 可定期擷取事件,或補捉因服務中斷而可能錯過的訂閱事件。如要瞭解接收及回覆 Chat 事件的方式,請參閱 Chat 說明文件中的「處理 Chat 事件」。
支援的 Chat 事件
透過 Google Workspace 訂閱方案,您可以接收有關下列 Chat 變更類型的事件:
- 聊天室中新增、更新或刪除的訊息。
- 訊息新增或移除回應。
- 聊天室中新增、更新或移除成員。
- 你訂閱的空間有變更,例如空間名稱或說明更新。
- 變更使用者的空閒時間。
- 變更使用者的 spaceReadState 或 threadReadState。
可監控事件的資源
如要接收事件,請指定要監控的 Chat 資源,這類資源稱為訂閱的目標資源。
Google Workspace Events API 支援下列 Chat 目標資源:
| 目標資源 | 格式 | 限制 |
|---|---|---|
| 空格 |
其中 SPACE 是 Chat API |
授權訂閱的 Chat 使用者或 Chat 應用程式必須透過 Google Workspace 或 Google 帳戶成為聊天室成員。支援: |
| 使用者的所有空間 |
|
訂閱項目只會接收使用者透過 Google Workspace 或 Google 帳戶加入的聊天室事件。僅支援使用者驗證。 |
| User |
其中 USER 是 Chat API |
訂閱項目只會接收授權訂閱的使用者相關事件。使用者無法代表其他使用者授權訂閱。僅支援使用者驗證。 |
| 客戶 ( 開發人員預覽版) |
其中 CUSTOMER 是客戶 ID。您也可以使用 |
訂閱項目會接收客戶網域管理的所有空間和使用者事件。僅支援應用程式驗證,且須經管理員核准。 |
建立訂閱項目的事件類型
建立訂閱項目時,請使用 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 應用程式也可能會收到批次事件。批次事件是指在短時間內發生多個相同類型的事件。批次事件的酬載包含所有已變更資源的清單。
舉例來說,如果使用者同時將 20 位使用者加入聊天室,Chat 應用程式可能會收到批次事件 (google.workspace.chat.membership.v1.batchCreated)。事件酬載包含使用者將成員加入聊天室時建立的所有新 Membership 資源清單。
系統會針對您訂閱的任何事件類型傳送批次事件,因此建立訂閱時不需要指定批次事件。舉例來說,如果您訂閱新的回應 (google.workspace.chat.reaction.v1.created),系統會自動設定 Chat 應用程式,接收批次回應事件 (google.workspace.chat.reaction.v1.batchCreated)。
下表列出訂閱項目的可能批次事件:
| 批次事件類型 | 格式 |
|---|---|
| 發布多則訊息。 |
|
| 多則訊息已更新。 |
|
| 系統會刪除多則訊息。 |
|
| 系統會建立多個回應。 |
|
| 多個回應遭到刪除。 |
|
| 多位成員已加入訂閱的聊天室,或訂閱的使用者已加入多個聊天室。 |
|
| 更新已訂閱的空間或使用者的多個成員資格。 |
|
| 從已訂閱的聊天室中移除多位成員,或從多個聊天室中移除已訂閱的使用者。 |
|
| 聊天室有多則更新。 |
|
| 系統會為訂閱使用者更新多個空間的讀取狀態。 |
|
| 系統會為訂閱使用者更新多個執行緒的讀取狀態。 |
|
事件資料
本節說明 Google Chat 事件的事件資料和有效負載範例。
當 Google Workspace 訂閱方案收到 Chat 的事件時,data 欄位會包含該事件的酬載。這個酬載包含變更的 Google Workspace 資源相關資訊。舉例來說,如果您已訂閱空間中的成員活動,這些活動的酬載會包含有關已變更 spaces.membership 資源的資訊。
事件酬載中的資源資料
建立訂閱項目時,您可以指定要在酬載中加入資源詳細資料,還是只加入資源名稱。舉例來說,如要接收有關 Chat 聊天室成員的事件,請指定要在事件酬載中接收哪些成員資源的欄位。
下表提供訂閱 Chat 空間 spaces/AAAABBBBBB 的 JSON 酬載範例。訂閱項目收到的每個事件,其酬載都會顯示在事件的 data 欄位中:
| 範例 | 事件類型 | JSON 酬載 |
|---|---|---|
使用者在聊天室中發布「Hello world」訊息。 |
|
包括資源資料:
{
"message":
{
"name": "spaces/不含資源資料:
{
"message":
{
"name": "spaces/ |
| 使用者成為聊天室管理員。 |
|
包括資源資料:
{
"membership":
{
"name": "spaces/不含資源資料:
{
"membership":
{
"name": "spaces/ |
| 使用者將聊天室說明更新為「Cymbal Labs 銷售團隊」。 | google.workspace.chat.space.v1.updated |
包括資源資料:
{
"space":
{
"name": "spaces/不含資源資料:
{
"space":
{
"name": "spaces/ |
| 兩位 Chat 使用者同時加入聊天室。 | google.workspace.chat.membership.v1.batchCreated |
包括資源資料:
{
"memberships": [
{
"membership": {
"name": "spaces/不含資源資料:
{
"memberships": [
{
"membership": {
"name": "spaces/ |
| 使用者以 😊 表情符號回應訊息。 | google.workspace.chat.reaction.v1.created |
包括資源資料:
{
"reaction":
{
"name": "spaces/不含資源資料:
{
"reaction":
{
"name": "spaces/ |
| 使用者以 😊 表情符號和 😸 表情符號回應訊息。 | google.workspace.chat.reaction.v1.batchCreated |
包括資源資料:
{
"reactions": [
{
"reaction": {
"name": "spaces/不含資源資料:
{
"reactions": [
{
"reaction": {
"name": "spaces/ |
| 使用者造訪未讀的聊天室,系統會更新聊天室的已讀狀態。 | google.workspace.chat.spaceReadState.v1.updated |
包括資源資料:
{
"spaceReadState": {
"name": "users/不含資源資料:
{
"spaceReadState": {
"name": "users/ |
| 使用者在討論串中閱讀訊息,討論串的已讀狀態隨即更新。 | google.workspace.chat.threadReadState.v1.updated |
包括資源資料:
{
"threadReadState": {
"name": "users/不含資源資料:
{
"threadReadState": {
"name": "users/ |
| 使用者在 Chat 中上線。 | google.workspace.chat.availability.v1.updated |
包括資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE"
}
}
不含資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| 使用者在 Chat 中處於閒置狀態。 | google.workspace.chat.availability.v1.updated |
包括資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "IDLE",
}
}
不含資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
使用者在 Chat 中將狀態設為「Away」。 |
google.workspace.chat.availability.v1.updated |
包括資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "AWAY",
}
}
不含資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
使用者在 Chat 中將狀態設為「Do not disturb」。 |
google.workspace.chat.availability.v1.updated |
包括資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "DO_NOT_DISTURB",
"doNotDisturbMetadata": {
"expirationTime": "2026-03-24T18:36:31.337Z"
}
}
}
不含資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
| 使用者在 Chat 中設定自訂狀態。 | google.workspace.chat.availability.v1.updated |
包括資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
"state": "ACTIVE",
"customStatus": {
"text": "Be right back",
"emoji": {
"unicode": "👟"
},
"expireTime": "2026-03-24T18:38:05.583655Z"
}
}
}
不含資源資料:
{
"availability":
{
"name": "users/USER_ID/availability",
}
}
|
限制和傳送行為
一般限制
- 如要接收成員事件,使用者或 Chat 應用程式必須是聊天室的直接成員。如果使用者是透過 Google 群組間接新增、更新或移除聊天室,訂閱項目不會收到這些成員資格事件。如要瞭解 Google 群組成員資格的運作方式,請參閱「將 Google 群組新增至聊天室」。
使用者訂閱
-
訂閱使用者時,只有在發布第一則訊息後,才會觸發有關即時訊息或未命名群組通訊中新成員的事件 (
google.workspace.chat.membership.v1.created)。
客戶訂閱項目 ( 開發人員預覽版)
客戶訂閱方案有以下限制:
- Google Workspace 機構必須至少有一個 Enterprise SKU 授權。請注意,在開發人員預覽版計畫階段,我們不會嚴格執行這項規定,但日後會強制執行 (另行公告)。
- Chat 應用程式只能為特定 Google Workspace 機構建立一個客戶訂閱項目。Google Workspace 機構最多可有五個客戶訂閱項目 (由不同的 Chat 應用程式建立)。
對於顧客訂閱項目,事件傳送遵循下列一般規則:
- 即時通訊空間活動:只有在 Google Workspace 機構管理的即時通訊空間中發生活動時,才會傳送通知。
- 使用者事件:只有在事件發生時,使用者屬於您的 Google Workspace 機構,才會傳送這類事件。
會員活動是這些規則的唯一例外。您的訂閱項目可以接收貴機構和外部機構管理之聊天室的成員事件,但傳送方式取決於聊天室的管理機構:
由 Google Workspace 機構管理的工作空間
如果 Google Workspace 機構管理的聊天室發生成員異動,系統會以聊天室事件的形式傳送通知。
空間事件的資源名稱格式如下:
spaces/{spaceId}/spaceEvents/{spaceEventId}
由外部機構管理的聊天室
如果外部機構管理的聊天室 (例如外部具名聊天室或外部使用者建立的即時訊息) 中,由 Google Workspace 機構管理的使用者成員資格有所變更,訂閱項目會將這類事件視為使用者事件。
使用者事件的資源名稱格式如下:
users/{userId}/userEvents/{userEventId}
相關主題
- Google Workspace 事件的結構
- 選擇 OAuth 範圍
- 建立訂閱項目,接收即時通訊事件