本節將說明應用程式從 Google Chat 接收的事件格式。
事件欄位
當應用程式從 Google Chat 收到事件時,該事件會包含要求主體,也就是代表事件的 JSON 酬載。這個酬載包含所有事件類型通用的元素,以及特定事件類型的元素。下圖顯示酬載中可能會出現的欄位:
一般事件欄位
無論類型的類型,所有事件的酬載一律都會提供通用欄位。
欄位 | 類型 | 說明 |
---|---|---|
type |
字串 | 應用程式收到的事件類型。 |
eventTime |
字串 | 時間戳記 (根據 RFC 3339 格式),指出該事件分派的時間。 |
特定類型事件欄位
要求酬載中可能會有其他欄位 (如果適用於事件類型)。
欄位 | 類型 | 說明 | 事件類型 |
---|---|---|---|
message |
訊息 | 該活動的相關訊息。 | 訊息已新增至聊天室。 |
space |
空格鍵 | 與活動相關的聊天室。 | 訊息已新增至聊天室,已從聊天室中移除。 |
user |
使用者 | 與事件相關的使用者。 | 訊息已新增至聊天室,已從聊天室中移除。 |
thread |
討論串 | 郵件所屬的會話串。 | 僅限訊息事件。 |
事件類型
本節將說明應用程式可能接收的事件類型,並提供各類型的範例。
MESSAGE
這個事件代表傳送至應用程式的訊息。
訊息詳細資料會以欄位的形式儲存在 message
欄位中。回應行為:在與原始使用者郵件相同的會話串中發布訊息。
酬載範例:
{
"type": "MESSAGE",
"eventTime": "2017-03-02T19:02:59.910959Z",
"space": {
"name": "spaces/AAAAAAAAAAA",
"displayName": "Customer Support Superstars",
"spaceType": "SPACE"
},
"message": {
"name": "spaces/AAAAAAAAAAA/messages/CCCCCCCCCCC",
"sender": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
},
"createTime": "2017-03-02T19:02:59.910959Z",
"text": "@TestBot Create ticket.",
"argumentText": " Create ticket.",
"thread": {
"name": "spaces/AAAAAAAAAAA/threads/BBBBBBBBBBB"
},
"annotations": [
{
"length": 8,
"startIndex": 0,
"userMention": {
"type": "MENTION",
"user": {
"avatarUrl": "https://.../avatar.png",
"displayName": "TestBot",
"name": "users/1234567890987654321",
"type": "BOT"
}
},
"type": "USER_MENTION"
}
],
"attachment": [
{
"name": "spaces/5o6pDgAAAAE/messages/Ohu1LlUVcS8.Ohu1LlUVcS8/attachments/AATUf-Iz7d8kySEdRRZd-dznqBk3",
"content_name": "solar.png",
"content_type": "image/png",
"drive_data_ref": {
"drive_file_id": "H1HqaqRuH2Pfd_TOa1fF2_ltwDlV_yKRrr"
},
"source": "DRIVE_FILE"
}
]
},
"user": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
}
}
ADDED_TO_SPACE
這個事件表示您的應用程式已新增至聊天室。應用程式通常會在聊天室的新執行緒中張貼某種歡迎訊息,以回應此事件。
以下 JSON 範例顯示使用者在聊天室中新增 Chat 應用程式時,ADDED_TO_SPACE
事件的要求主體:
{
"type": "ADDED_TO_SPACE",
"eventTime": "2017-03-02T19:02:59.910959Z",
"space": {
"name": "spaces/AAAAAAAAAAA",
"displayName": "Customer Support Superstars",
"spaceType": "SPACE",
"adminInstalled": "false"
},
"user": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
}
}
由 Google Workspace 管理員安裝
ADDED_TO_SPACE
事件也可以指出 Google Workspace 管理員已為所屬機構的使用者安裝 Chat 應用程式。
管理員只能安裝 Chat 應用程式,以便在應用程式與使用者之間傳送即時訊息。已安裝的應用程式會顯示在使用者的即時訊息面板中。使用者無法解除安裝由管理員安裝的應用程式。如要瞭解管理員安裝的即時通訊應用程式,請參閱 Google Workspace 管理員的說明文件:在網域中安裝 Marketplace 應用程式。
以下 JSON 範例顯示 Google Workspace 管理員為使用者安裝 Chat 應用程式時,ADDED_TO_SPACE
事件的要求主體。由於該應用程式是由管理員安裝,因此 adminInstalled
已設為 true
:
{
"type": "ADDED_TO_SPACE",
"eventTime": "2017-03-02T19:02:59.910959Z",
"space": {
"name": "spaces/AAAAAAAAAAA",
"displayName": "Customer Support Superstars",
"spaceType": "DIRECT_MESSAGE",
"adminInstalled": "true"
},
"user": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
}
}
REMOVED_FROM_SPACE
這個事件指出您的應用程式已從聊天室中移除。應用程式已遭移除,因此不會回應這項活動。
以下 JSON 範例顯示使用者從聊天室中移除應用程式時,REMOVED_FROM_SPACE
事件的要求主體:
{
"type": "REMOVED_FROM_SPACE",
"eventTime": "2017-03-02T19:02:59.910959Z",
"space": {
"name": "spaces/AAAAAAAAAAA",
"spaceType": "SPACE",
"adminInstalled": "false"
},
"user": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
}
}
遭到 Google Workspace 管理員解除安裝
REMOVED_FROM_SPACE
事件也可以指出 Google Workspace 管理員為所屬機構的使用者解除安裝了 Chat 應用程式。解除安裝後,應用程式不會再出現在使用者的即時訊息面板中。
如果使用者在管理員安裝您的應用程式前就已經安裝應用程式,系統仍會為使用者安裝應用程式。在此情況下,由於應用程式仍在安裝中,因此應用程式不會收到 REMOVED_FROM_SPACE
事件。
以下 JSON 範例顯示 Google Workspace 管理員為使用者解除安裝 Chat 應用程式時,REMOVED_FROM_SPACE
事件的要求主體。由於管理員已解除安裝應用程式,因此 adminInstalled
已設為 true
:
{
"type": "REMOVED_FROM_SPACE",
"eventTime": "2017-03-02T19:02:59.910959Z",
"space": {
"name": "spaces/AAAAAAAAAAA",
"spaceType": "DIRECT_MESSAGE",
"adminInstalled": "true"
},
"user": {
"name": "users/12345678901234567890",
"displayName": "Izumi",
"avatarUrl": "https://lh3.googleusercontent.com/.../photo.jpg",
"email": "izumi@example.com"
}
}