事件格式

本節將說明應用程式從 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"
  }
}