Event

Google Chat 應用程式互動事件,代表使用者與 Chat 應用程式的互動,並包含相關資料。如要設定 Chat 應用程式接收互動事件,請參閱「接收及回應使用者互動」。

除了接收使用者互動事件,Chat 應用程式也能接收聊天室變更事件,例如在聊天室中新增成員。如要瞭解聊天室活動,請參閱「處理 Google Chat 的活動」。

注意:這項事件僅適用於即時通訊互動事件。如果您的 Chat 擴充應用程式是建構為 Google Workspace 外掛程式,請參閱外掛程式說明文件中的 Chat 事件物件

JSON 表示法
{
  "type": enum (EventType),
  "eventTime": string,
  "token": string,
  "threadKey": string,
  "message": {
    object (Message)
  },
  "user": {
    object (User)
  },
  "thread": {
    object (Thread)
  },
  "space": {
    object (Space)
  },
  "action": {
    object (FormAction)
  },
  "configCompleteRedirectUrl": string,
  "isDialogEvent": boolean,
  "dialogEventType": enum (DialogEventType),
  "common": {
    object (CommonEventObject)
  },
  "appCommandMetadata": {
    object (AppCommandMetadata)
  }
}
欄位
type

enum (EventType)

使用者與 Chat 應用程式互動的類型,例如 MESSAGEADDED_TO_SPACE

eventTime

string (Timestamp format)

互動事件發生的時間戳記。

token

string

舊版 Chat 應用程式可使用這個密碼值,驗證要求是否來自 Google。Google 會隨機產生權杖,且權杖值不會變動。您可以在 Google Cloud 控制台的 Chat API 設定頁面中取得、撤銷或重新產生權杖。

新版 Chat 應用程式不會使用這個欄位。API 回應和 Chat API 設定頁面中都不會顯示。

threadKey

string

與互動事件相關聯的執行緒,其 Chat 應用程式定義的鍵。詳情請參閱spaces.messages.thread.threadKey

message

object (Message)

如果是 ADDED_TO_SPACECARD_CLICKEDMESSAGE 互動事件,則為觸發互動事件的訊息 (如適用)。

user

object (User)

與 Chat 應用程式互動的使用者。

thread

object (Thread)

使用者與 Chat 應用程式互動的討論串。這可能是由新傳送的訊息建立的新討論串。如果互動事件與特定訊息或討論串相關聯,系統會填入這個欄位。

space

object (Space)

使用者與 Chat 應用程式互動的聊天室。

action

object (FormAction)

如果是 CARD_CLICKED 互動事件,則為使用者點選資訊卡或對話方塊時相關聯的表單動作資料。詳情請參閱「讀取使用者在表單中輸入的資料」。

configCompleteRedirectUrl

string

系統會針對 MESSAGEADDED_TO_SPACEAPP_COMMAND 互動事件填入這個網址。在 Google Chat 以外完成授權或設定流程後,使用者必須重新導向至這個網址,向 Google Chat 發出授權或設定流程成功的信號。詳情請參閱「將 Chat 應用程式連結至其他服務和工具」。

isDialogEvent

boolean

如果是 CARD_CLICKEDMESSAGE 互動事件,則表示使用者是否正在與對話方塊互動或即將互動。

dialogEventType

enum (DialogEventType)

收到的對話方塊互動事件類型。

common

object (CommonEventObject)

代表使用者用戶端的相關資訊,例如語言代碼、主機應用程式和平台。如果是 Chat 應用程式,CommonEventObject包括使用者與對話方塊互動時提交的資訊,例如在資訊卡上輸入的資料。

appCommandMetadata

object (AppCommandMetadata)

Chat 應用程式指令的中繼資料。

CommonEventObject

一般事件物件是整體事件物件的一部分,可將一般資訊 (與主機無關) 從使用者端傳送至外掛程式。這項資訊包括使用者的地區設定、主機應用程式和平台等詳細資料。

除了首頁和關聯觸發條件,當使用者與小工具互動時,外掛程式也會建構事件物件並傳遞至動作回呼函式。外掛程式的回呼函式可以查詢通用事件物件,判斷使用者用戶端中開啟的小工具內容。舉例來說,外掛程式可以在 eventObject.commentEventObject.formInputs 物件中,找出使用者在 TextInput 小工具中輸入的文字。

如果是 Chat 應用程式,這是使用者與小工具互動時叫用的函式名稱。

JSON 表示法
{
  "userLocale": string,
  "hostApp": enum (HostApp),
  "platform": enum (Platform),
  "timeZone": {
    object (TimeZone)
  },
  "formInputs": {
    string: {
      object (Inputs)
    },
    ...
  },
  "parameters": {
    string: string,
    ...
  },
  "invokedFunction": string
}
欄位
userLocale

string

預設為停用。使用者語言和國家/地區 ID,格式為 ISO 639 語言代碼 - ISO 3166 國家/地區代碼。例如:en-US

如要開啟這個欄位,請在外掛程式的資訊清單中將 addOns.common.useLocaleFromApp 設為 true。外掛程式的範圍清單也必須包含 https://www.googleapis.com/auth/script.locale。詳情請參閱「存取使用者語言代碼和時區」。

hostApp

enum (HostApp)

指出產生事件物件時,外掛程式啟用的主機應用程式。可能的值如下:

  • GMAIL
  • CALENDAR
  • DRIVE
  • DOCS
  • SHEETS
  • SLIDES
  • CHAT
platform

enum (Platform)

平台列舉,指出事件的來源平台 (WEBIOSANDROID)。Chat 應用程式不支援這項功能。

timeZone

object (TimeZone)

預設為停用。時區 ID 和與世界標準時間 (UTC) 的時差。如要開啟這個欄位,請在外掛程式的資訊清單中將 addOns.common.useLocaleFromApp 設為 true。外掛程式的範圍清單也必須包含 https://www.googleapis.com/auth/script.locale。詳情請參閱「存取使用者語言代碼和時區」。

僅支援 CARD_CLICKEDSUBMIT_DIALOG 事件類型。

formInputs

map (key: string, value: object (Inputs))

地圖,內含顯示卡片中小工具的目前值。地圖鍵是指派給每個小工具的字串 ID。

地圖值物件的結構取決於小工具類型:

注意:下列範例是為 Apps Script 的 V8 執行階段格式化。如果您使用 Rhino 執行階段,必須在值後方加入 [""]。舉例來說,請將事件物件格式設為 e.commonEventObject.formInputs.employeeName[""].stringInputs.value[0],而非 e.commonEventObject.formInputs.employeeName.stringInputs.value[0]。如要進一步瞭解 Apps Script 中的執行階段,請參閱「V8 執行階段總覽」。

  • 單一值小工具 (例如文字方塊):字串清單 (僅一個元素)。

範例:如果文字輸入小工具的 ID 為 employeeName,請使用 e.commonEventObject.formInputs.employeeName.stringInputs.value[0] 存取文字輸入值。

  • 多值小工具 (例如核取方塊群組):字串清單。

範例:如果是 ID 為 participants 的多值小工具,請使用 e.commonEventObject.formInputs.participants.stringInputs.value 存取值陣列。

範例:如要存取 ID 為 myDTPicker 的選擇器,請使用 e.commonEventObject.formInputs.myDTPicker.dateTimeInput 存取 DateTimeInput 物件。

範例:如要存取 ID 為 myDatePicker 的選擇器,請使用 e.commonEventObject.formInputs.myDatePicker.dateInput 存取 DateInput 物件。

範例:如要存取 ID 為 myTimePicker 的選擇器,請使用 e.commonEventObject.formInputs.myTimePicker.timeInput 存取 TimeInput 物件。

parameters

map (key: string, value: string)

您使用 actionParametersAction.setParameters() 提供給動作的任何額外參數。

開發人員預覽版:如果是擴充 Google Chat 的外掛程式,如要根據使用者在多選式選單中輸入的內容建議項目,請使用 "autocomplete_widget_query" 鍵的值 (event.commonEventObject.parameters["autocomplete_widget_query"])。您可以使用這個值查詢資料庫,並在使用者輸入內容時建議可選取的項目。詳情請參閱「收集及處理 Google Chat 使用者的資訊」。

invokedFunction

string

要叫用的函式名稱。

如果是擴充 Google Chat 的 Google Workspace 外掛程式,這個欄位不會填入資料。如要接收 ID 等函式資料,擴充 Chat 的外掛程式應使用 parameters 欄位。請參閱「為 Chat 應用程式建構互動式介面」。

TimeZone

時區 ID 和與世界標準時間 (UTC) 的時差。僅支援 CARD_CLICKEDSUBMIT_DIALOG 事件類型。

JSON 表示法
{
  "id": string,
  "offset": integer
}
欄位
id

string

IANA TZ 時區資料庫代碼,例如「America/Toronto」。

offset

integer

使用者時區與世界標準時間 (UTC) 的時差 (以毫秒為單位)。

輸入

使用者可在資訊卡或對話方塊中輸入的資料類型。輸入類型取決於小工具接受的值類型。

JSON 表示法
{

  // Union field inputs can be only one of the following:
  "stringInputs": {
    object (StringInputs)
  },
  "dateTimeInput": {
    object (DateTimeInput)
  },
  "dateInput": {
    object (DateInput)
  },
  "timeInput": {
    object (TimeInput)
  }
  // End of list of possible types for union field inputs.
}
欄位

聯集欄位 inputs

inputs 只能是下列其中一項:

stringInputs

object (StringInputs)

字串清單,代表使用者在小工具中輸入的值。

如果小工具只接受一個值 (例如 TextInput 小工具),清單會包含一個字串物件。如果小工具接受多個值 (例如核取方塊的 SelectionInput 小工具),清單會包含使用者輸入或選取的每個值的字串物件。

dateTimeInput

object (DateTimeInput)

DateTimePicker 小工具的日期和時間輸入值,可同時接受日期和時間。

dateInput

object (DateInput)

DateTimePicker 小工具的日期輸入值,只能接受日期值。

timeInput

object (TimeInput)

DateTimePicker 小工具的時間輸入值,該小工具只接受時間值。

StringInputs

一般小工具的輸入參數。如果是單一值的小工具,則為單一值清單。如果是核取方塊等多值小工具,系統會顯示所有值。

JSON 表示法
{
  "value": [
    string
  ]
}
欄位
value[]

string

使用者輸入的字串清單。

DateTimeInput

日期和時間輸入值。

JSON 表示法
{
  "msSinceEpoch": string,
  "hasDate": boolean,
  "hasTime": boolean
}
欄位
msSinceEpoch

string (int64 format)

自 Epoch 時間起經過的時間 (以毫秒為單位)。

hasDate

boolean

datetime 輸入內容是否包含日曆日期。

hasTime

boolean

datetime 輸入內容是否包含時間戳記。

DateInput

日期輸入值。

JSON 表示法
{
  "msSinceEpoch": string
}
欄位
msSinceEpoch

string (int64 format)

自 Epoch 時間起經過的時間 (以毫秒為單位)。

TimeInput

時間輸入值。

JSON 表示法
{
  "hours": integer,
  "minutes": integer
}
欄位
hours

integer

24 小時制時鐘的小時。

minutes

integer

整點過後的分鐘數。有效值介於 0 至 59 之間。

AppCommandMetadata

Chat 擴充應用程式指令的中繼資料。

JSON 表示法
{
  "appCommandId": integer,
  "appCommandType": enum (AppCommandType)
}
欄位
appCommandId

integer

Chat API 設定中指定的指令 ID。

appCommandType

enum (AppCommandType)

Chat 應用程式指令的類型。