Event

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

除了接收使用者互動事件外,Chat 擴充應用程式也能接收聊天室變更事件,例如有新成員加入聊天室。如要瞭解聊天室事件,請參閱「使用 Google Chat 的事件」。

警告:這個事件物件僅適用於非外掛程式的 Chat 應用程式。如果 Chat 擴充應用程式是建構為 Google Workspace 外掛程式,請改為參閱外掛程式說明文件中的「外掛程式事件物件」。如要確認應用程式收到的事件類型,請參閱「判斷事件類型」。

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 擴充應用程式互動的類型,例如 MESSAGE 或 ADDED_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_SPACE、CARD_CLICKED 和 MESSAGE 互動事件,則會顯示觸發互動事件的訊息 (如適用)。

user

object (User)

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

thread

object (Thread)

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

space

object (Space)

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

action

object (FormAction)

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

configCompleteRedirectUrl

string

系統會為MESSAGE、ADDED_TO_SPACE和APP_COMMAND互動事件填入這個網址。在 Google Chat 外部完成授權或設定流程後,使用者必須重新導向至這個網址,向 Google Chat 表示授權或設定流程已成功。詳情請參閱「將 Chat 擴充應用程式連結至其他服務和工具」。

isDialogEvent

boolean

針對 CARD_CLICKED 和 MESSAGE 互動事件,使用者是否正在與對話方塊互動,或即將與對話方塊互動。

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)

平台列舉,表示事件來源平台 (WEB、IOS 或 ANDROID)。Chat 應用程式不支援。

timeZone

object (TimeZone)

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

僅支援 CARD_CLICKED 和 SUBMIT_DIALOG 事件類型。

formInputs

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

包含顯示卡片中目前小工具值的對應。對應鍵是為每個輸入小工具 (例如 TextInput.name、SelectionInput.name、DateTimePicker.name 或 DecoratedText.SwitchControl.name) 指派的字串 name 值。

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

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

  • 單值小工具 (例如 TextInput 小工具,或 DROPDOWN 或 RADIO_BUTTON 類型的 SelectionInput 小工具):包含單一元素清單的 StringInputs 物件 (如果未選取任何項目,則為空白清單)。

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

  • 多值小工具 (例如 CHECK_BOX、SWITCH 或 MULTI_SELECT 類型的 SelectionInput 小工具):包含所選項目 value 字串清單的 StringInputs 物件。

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

  • DecoratedText.SwitchControl 小工具:StringInputs 物件。當 selected 為 true 時,stringInputs.value 會包含切換鈕的 value 欄位 (如果未指定 value,則為 "";如果多個切換鈕共用相同的 name,則每個所選切換鈕的 value 都會包含在清單中)。當 selected 為 false 時,切換鈕的 value 會從 stringInputs.value 中省略。

  • 日期時間挑選器 (DateTimePickerType.DATE_AND_TIME):DateTimeInput object。

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

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

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

parameters

map (key: string, value: string)

您使用 actionParameters 或 Action.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_CLICKED 和 SUBMIT_DIALOG 事件類型。

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

string

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

offset

integer

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

輸入內容

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

JSON 表示法
{

  "stringInputs": {
    object (StringInputs)
  },
  "dateTimeInput": {
    object (DateTimeInput)
  },
  "dateInput": {
    object (DateInput)
  },
  "timeInput": {
    object (TimeInput)
  }
}
欄位
以下是互斥欄位清單。回應中最多會設定下列其中一個欄位:
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 擴充應用程式指令的類型。