本頁概述 Google Workspace 外掛程式事件物件的結構。
事件物件是 JSON 結構,系統會自動建構並傳遞為參數,以便在使用者與外掛程式互動時觸發或回呼函式。事件物件會將主機應用程式的相關用戶端資訊及目前背景資訊,提供給外掛程式的伺服器端回呼函式。
Google Workspace 外掛程式在下列位置使用活動物件:
首頁觸發條件: 您定義的每個
homepageTrigger
函式都會在首頁觸發函式觸發時,自動傳遞事件物件。您可以在首頁觸發函式中使用這個物件來識別使用中的主機應用程式、用戶端平台、使用者語言代碼及其他資訊。首頁觸發時建立的事件物件,不包含其他兩種情況下包含的所有欄位;與小工具和情境資訊相關的欄位會省略。
內容比對觸發條件: 每個主機應用程式都提供一組不同的內容相關觸發條件,系統會在使用者輸入特定背景資訊時觸發。例如:
- Gmail 會在使用者開啟郵件,並在使用者撰寫郵件時提供另一個內容觸發條件。
- Google 日曆會在使用者開啟活動時提供內容相關觸發條件。
- 當使用者選取雲端硬碟檔案時,Google 雲端硬碟會提供內容相關觸發條件。
當內容相關觸發條件啟動時,主機應用程式會呼叫外掛程式資訊清單中所列的對應
runFunction
,並將事件物件做為參數傳遞。關聯觸發條件觸發時建立的事件物件包含首頁觸發事件物件中的所有欄位,以及包含情境資訊的欄位。小工具動作。事件物件也會採用與 Gmail 外掛程式相同的動作模型,提供小工具互動功能。Google Workspace 外掛程式使用的所有小工具處理常式函式、
Action
物件和動作回應都相同。不過,在 Google Workspace 外掛程式中,動作事件物件會提供更多資訊,可用來執行回呼函式。做為小工具動作結果建立的事件物件,會包含關聯觸發事件物件中包含的所有欄位,以及包含小工具資訊的欄位。
預覽連結觸發條件。 在 Google 文件、試算表和簡報中,您可以根據特定網址模式設定第三方服務的連結預覽。當使用者與符合模式的連結互動時,系統會將
linkPreviewTriggers
啟動和包含該連結的事件物件傳遞至觸發條件的回呼函式。您的外掛程式可利用這個事件物件建構智慧型方塊和卡片,以顯示主機應用程式中連結的相關資訊。您也可以建構小工具動作,讓使用者與預覽資訊卡和內容互動。
事件物件結構
下表說明 Google Workspace 外掛程式事件物件的頂層結構。事件物件結構包含 commonEventObject
頂層欄位,代表與主機相關聯的資訊。每個事件物件還可包含下列其中一個主機專屬頂層欄位 (由使用中的主機應用程式決定):gmailEventObject
、calendarEventObject
或 driveEventObject
。
為了回溯相容,Google Workspace 外掛程式事件物件也會包含 Gmail 外掛程式動作事件物件中使用的所有原始欄位。這些欄位會列在下方「原始 Gmail 外掛程式欄位」下方的表格中;這些欄位的資訊會在新的物件結構中重現。
事件物件 | |
---|---|
eventObject.commonEventObject |
Common fields object
包含所有事件物件通用資訊的物件,無論主機應用程式為何。 |
eventObject.calendar |
Calendar event object
只有在通話主辦人為 Google 日曆時,才會顯示簡報。包含日曆和活動資訊的物件。 |
eventObject.drive |
Drive event object
只有在通話主辦人是 Google 雲端硬碟時,才會顯示簡報。包含雲端硬碟資訊的物件。 |
eventObject.gmail |
Gmail event object
只有在通話主辦人為 Gmail 時,才會顯示簡報。包含 Gmail 資訊的物件。 |
eventObject.docs |
Docs event object
只有在通話主辦人為 Google 文件時,才會顯示簡報。包含文件資訊的物件。 |
eventObject.sheets |
Sheets event object
只有在通話主辦人為 Google 試算表時,才會顯示這個畫面。包含試算表資訊的物件。 |
eventObject.slides |
Slides event object
只有在通話主辦人為 Google 簡報時,才會顯示簡報。包含簡報資訊的物件。 |
原始 Gmail 外掛程式欄位 | |
eventObject.messageMetadata.accessToken |
string 已淘汰。存取權杖。您可以使用這項設定,開啟使用 Gmail 臨時外掛程式範圍的使用者資料存取權。
如果是 Google Workspace 外掛程式,請在 |
eventObject.messageMetadata.messageId |
string 已淘汰。在 Gmail UI 中開啟的會話串郵件 ID。
如果是 Google Workspace 外掛程式,請在 |
eventObject.clientPlatform |
string 已淘汰。指出事件的來源 (網頁、iOS 或 Android)。
如果是 Google Workspace 外掛程式,請在 |
eventObject.formInput |
object 已淘汰。資訊卡中所有表單小工具目前值的對應,每個小工具僅限一個值。索引鍵是與小工具相關聯的字串 ID,值則是字串。事件物件提供 formInput ,方便您從多個小工具讀取預期單數值的資料,例如文字輸入和切換按鈕。如果是核取方塊等多值小工具,您可以改為從 formInputs 讀取每個值。
如果是 Google Workspace 外掛程式,請改在 |
eventObject.formInputs |
object 已淘汰。資訊卡中小工具目前值的對應,以字串清單的形式呈現。金鑰是與小工具相關聯的字串 ID。如果是單一值小工具,這個值會以單一元素陣列的形式呈現。如果是多值小工具 (例如核取方塊群組),則所有值都會顯示在清單中。
如果是 Google Workspace 外掛程式,請在 |
eventObject.parameters |
object 已淘汰。您使用 Action.setParameters() 提供給
Action 的任何其他參數的對應。對應鍵和值是字串。
如果是 Google Workspace 外掛程式,請在 |
eventObject.userCountry |
string 預設為已淘汰並停用。代表使用者所在國家/地區的雙字母代碼。也可以是數字的 UN M49 國家/地區代碼。
如果是 Google Workspace 外掛程式,請在 |
eventObject.userLocale |
string 預設為已淘汰並停用。兩個字母的 ISO 639 代碼,指出使用者的語言。詳情請參閱「存取使用者語言代碼和時區」。
如果是 Google Workspace 外掛程式,請在 |
eventObject.userTimezone.id |
string 預設為已淘汰並停用。使用者所在時區的 時區 ID。範例包括: America/New_York 、Europe/Vienna 和 Asia/Seoul 。詳情請參閱「
存取使用者語言代碼和時區」。
如果是 Google Workspace 外掛程式,請在 |
eventObject.userTimezone.offset |
string 預設為已淘汰並停用。使用者時區的 與世界標準時間 (UTC) 時間偏移,以毫秒為單位。詳情請參閱「 存取使用者語言代碼和時區」。
如果是 Google Workspace 外掛程式,請在 |
常見事件物件
常見事件物件是整體事件物件的一部分,會將一般、與主機無關的資訊,擷取至使用者用戶端的外掛程式。這類資訊包括使用者的語言代碼、主機應用程式和平台等詳細資料。
除了首頁和內容相關觸發條件以外,外掛程式也會建構使用者與小工具互動時的事件物件,並傳送至動作回呼函式。外掛程式的回呼函式可以查詢一般事件物件,以判斷使用者用戶端中開啟的小工具內容。舉例來說,外掛程式可找出使用者在 eventObject.commentEventObject.formInputs
物件中 TextInput
小工具中輸入的文字。
常見事件物件欄位 | |
---|---|
commonEventObject.platform |
string 指出事件的來源,例如「WEB」、「IOS」或「ANDROID」。 |
commonEventObject.formInputs |
object 包含顯示資訊卡中小工具目前值的地圖。對應鍵是每個小工具指派的字串 ID。 地圖值物件的結構取決於小工具類型:
|
commonEventObject.hostApp |
string 在事件物件產生時,指出外掛程式正在使用的主機應用程式。可能的值如下:
|
commonEventObject.parameters |
object 使用
Action.setParameters() 提供給
Action 的任何其他參數。 |
commonEventObject.userLocale |
string 預設為停用。使用者的語言和國家/地區 ID,格式為 ISO 639 語言代碼 ISO 3166 國家/地區代碼。例如: en-US 。
如要開啟這個欄位,您必須在外掛程式的資訊清單中將 |
commonEventObject.timeZone |
string 預設為停用。時區 ID 和偏移量。如要開啟這個欄位,您必須在外掛程式的資訊清單中將 addOns.common.useLocaleFromApp 設為 true 。外掛程式的範圍清單也必須包含 https://www.googleapis.com/auth/script.locale 。詳情請參閱「
存取使用者語言代碼和時區」。 |
commonEventObject.timeZone.id |
string 使用者所在時區的 時區 ID。範例包括: America/New_York 、Europe/Vienna 和 Asia/Seoul 。如要開啟這個欄位,您必須在外掛程式的資訊清單中將 addOns.common.useLocaleFromApp 設為 true 。外掛程式的範圍清單也必須包含 https://www.googleapis.com/auth/script.locale 。詳情請參閱「
存取使用者語言代碼和時區」。 |
commonEventObject.timeZone.offset |
string 使用者時區的 世界標準時間 (UTC) 時間偏移,以毫秒為單位。詳情請參閱「 存取使用者語言代碼和時區」。 |
日期時間挑選器表單輸入內容
動作回呼函式可在 commonEventObject.formInputs
欄位中接收目前的小工具值。這包括使用者在日期或時間挑選器小工具中選取的日期或時間值。不過,資訊的結構會因小工具設為日期時間挑選器、僅限日期挑選器還是時間挑選器而異。下表說明結構差異:
日曆活動物件
日曆活動物件是整個活動物件的一部分,其中含有使用者日曆和日曆活動的相關資訊。只有在代管應用程式是 Google 日曆時,活動物件才會顯示在事件物件中。
下表列出事件物件 calendarEventObject
欄位中顯示的欄位。標示為使用者產生的資料的欄位只有在資料出現在日曆活動中,且外掛程式會將 addOns.calendar.currentEventAccess
資訊清單欄位設為 READ
或 READ_WRITE
時,才會出現在事件物件中。
日曆活動物件 | |
---|---|
calendar.attendees[] |
list of attendee objects 使用者產生的資料。日曆活動的與會者清單。 |
calendar.calendarId |
string 日曆 ID。 |
calendar.capabilities |
object 使用者產生的資料:說明外掛程式用來查看或更新事件資訊的功能。 |
calendar.capabilities.canAddAttendees |
boolean 使用者產生的資料: true
如果該外掛程式可將新的參與者新增至活動與會者清單,否則會傳回 false 。 |
calendar.capabilities.canSeeAttendees |
boolean 使用者產生的資料: true
如果外掛程式可讀取活動參與者清單,否則會傳回 false 。
|
calendar.capabilities.canSeeConferenceData |
boolean 使用者產生的資料: true
如果外掛程式可讀取活動會議資料,否則會傳回 false 。
|
calendar.capabilities.canSetConferenceData |
boolean 使用者產生的資料: true
如果外掛程式可以更新活動會議資料,則為 false
。 |
calendar.capabilities.canAddAttachments |
boolean 使用者產生的資料: true
如果外掛程式可以在活動中新增附件,
則為 false 。
|
calendar.conferenceData |
Conference data object 使用者產生的資料。這個物件代表與此活動相關聯的所有會議資料,例如 Google Meet 會議詳細資料。 |
calendar.id |
string 活動 ID。 |
calendar.organizer |
object 代表活動主辦單位的物件。 |
calendar.organizer.email |
string 活動發起人的電子郵件地址。 |
calendar.recurringEventId |
string 週期性活動的 ID。 |
參與者
參與者物件可將個別參與者的相關資訊儲存在 Google 日曆活動中。只有當資料出現在日曆活動中,且外掛程式會將其 addOns.calendar.currentEventAccess
manifest 欄位設為 READ
或 READ_WRITE
時,事件物件中才會顯示這項資訊。
參加者物件 | |
---|---|
attendee.additionalGuests |
number 參與者表示他們要額外參加的來賓人數。預設值為零。 |
attendee.comment |
string 參與者的回覆留言 (如果有的話)。 |
attendee.displayName |
string 與會者的顯示名稱。 |
attendee.email |
string 參與者電子郵件地址。 |
attendee.optional |
boolean true 表示這位參與者的出席情況若標示為可不出席,否則為 false 。 |
attendee.organizer |
boolean true (如果參與者是此活動的發起人)。 |
attendee.resource |
boolean true ,如果參與者代表資源 (例如會議室或設備),否則為 false 。 |
attendee.responseStatus |
string 參與者的回覆狀態。可能的值如下:
|
attendee.self |
boolean true (如果此參與者代表包含這項活動的日曆,否則為 false )。 |
會議資料
會議資料物件可提供 Google 日曆活動中附加的會議相關資訊。這可以是 Google 會議解決方案,例如 Google Meet 或第三方會議。只有當資料出現在日曆活動中,且外掛程式會將其 addOns.calendar.currentEventAccess
manifest 欄位設為 READ
或 READ_WRITE
時,事件物件中才會顯示這項資訊。
會議資料物件 | |
---|---|
conferenceData.conferenceId |
string 會議的 ID。此 ID 的用途是讓應用程式追蹤會議,您不應向使用者顯示此 ID。 |
conferenceData.conferenceSolution |
object 代表會議解決方案的物件,例如 Hangouts 或 Google Meet。 |
conferenceData.conferenceSolution.iconUri |
string 使用者可見圖示的 URI,代表這項會議解決方案。 |
conferenceData.conferenceSolution.key |
object 這是用來識別此活動會議解決方案的專屬金鑰。 |
conferenceData.conferenceSolution.key.type |
string 會議解決方案類型。可能的值如下:
|
conferenceData.conferenceSolution.name |
string 向使用者顯示的這項會議解決方案名稱 (未經本地化)。 |
conferenceData.entryPoints[] |
list of entry point objects
列出會議進入點的清單,例如網址或電話號碼。 |
conferenceData.notes |
string 要向使用者顯示的其他會議相關注意事項 (例如網域管理員提供的操作說明或法律聲明)。可以包含 HTML。長度上限為 2048 個字元。 |
conferenceData.parameters |
object 這個物件包含已定義參數資料的地圖,以供外掛程式使用。 |
conferenceData.parameters.addOnParameters |
object 參數字串鍵和值的對應。這些鍵和值是由外掛程式開發人員定義,可將資訊附加到特定會議,供外掛程式使用。 |
進入點
進入點物件可提供關於存取特定會議的既定方式相關資訊,例如電話或視訊。只有當資料出現在日曆活動中,且外掛程式會將其 addOns.calendar.currentEventAccess
manifest 欄位設為 READ
或 READ_WRITE
時,事件物件中才會顯示此資訊。
進入點物件 | |
---|---|
entryPoint.accessCode |
string 用於存取會議的存取碼。 長度上限為 128 個字元。會議服務供應商通常只使用部分 { accessCode 、meetingCode 、passcode 、password 、pin } 來參與會議。進行比對,而且僅顯示會議服務供應商使用的欄位。 |
entryPoint.entryPointFeatures |
list 進入點的功能。下列功能目前僅適用於 phone 進入點:
|
entryPoint.entryPointType |
string 進入點的類型。可能的值如下:
|
entryPoint.label |
string 進入點 URI 的使用者可見標籤 (未本地化)。 |
entryPoint.meetingCode |
string 用於存取會議的會議代碼。 長度上限為 128 個字元。會議服務供應商通常只使用部分 { accessCode 、meetingCode 、passcode 、password 、pin } 來參與會議。進行比對,而且僅顯示會議服務供應商使用的欄位。 |
entryPoint.passcode |
string 存取會議時所用的密碼。 長度上限為 128 個字元。會議服務供應商通常只使用部分 { accessCode 、meetingCode 、passcode 、password 、pin } 來參與會議。進行比對,而且僅顯示會議服務供應商使用的欄位。 |
entryPoint.password |
string 用於存取會議的密碼。 長度上限為 128 個字元。會議服務供應商通常只使用部分 { accessCode 、meetingCode 、passcode 、password 、pin } 來參與會議。進行比對,而且僅顯示會議服務供應商使用的欄位。 |
entryPoint.pin |
string 存取會議時使用的 PIN 碼。 長度上限為 128 個字元。會議服務供應商通常只使用部分 { accessCode 、meetingCode 、passcode 、password 、pin } 來參與會議。進行比對,而且僅顯示會議服務供應商使用的欄位。 |
entryPoint.regionCode |
string 電話號碼的區碼。如果 URI 未包含國家/地區代碼,使用者會需要用到。值是根據公開的 CLDR 地區代碼清單計算得出。 |
entryPoint.uri |
string 進入點的 URI。長度上限為 1300 個半形字元。格式設定取決於進入點類型:
|
雲端硬碟事件物件
雲端硬碟事件物件是整體事件物件的一部分,其中含有使用者的 Google 雲端硬碟及其內容相關資訊。只有在主應用程式是 Google 雲端硬碟時,才會出現在事件物件中。
雲端硬碟事件物件 | |
---|---|
drive.activeCursorItem |
Drive item object 目前使用的雲端硬碟項目。 |
drive.selectedItems[] |
list of Drive item objects 雲端硬碟中選取的項目 (檔案或資料夾) 清單。 |
雲端硬碟項目
雲端硬碟項目物件則包含特定雲端硬碟項目的相關資訊,例如檔案或資料夾。
雲端硬碟項目物件 | |
---|---|
item.addonHasFileScopePermission |
boolean 如果為 true ,外掛程式會要求並收到這個項目的 https://www.googleapis.com/auth/drive.file 範圍授權;否則,這個欄位會是 false 。
|
item.id |
string 所選項目的 ID。 |
item.iconUrl |
string 代表所選項目的圖示網址。 |
item.mimeType |
string 所選項目的 MIME 類型。 |
item.title |
string 所選項目的名稱。 |
Gmail 事件物件
Gmail 事件物件是整體事件物件中,包含使用者 Gmail 郵件相關資訊的部分。只有在主應用程式是 Gmail 時,事件物件中才會顯示這項資訊。
Gmail 事件物件 | |
---|---|
gmail.accessToken |
string Gmail 專屬存取權杖。您可以將這個權杖與 GmailApp.setCurrentMessageAccessToken(accessToken) 方法搭配使用,藉此授予外掛程式暫時存取使用者目前開啟的 Gmail 郵件的權限,或是讓外掛程式撰寫新草稿。 |
gmail.bccRecipients[] |
list of strings 預設為停用。外掛程式正在編寫外掛程式草稿中的「密件副本:收件者電子郵件地址」清單。如要開啟這個欄位,您必須將資訊清單中的 addOns.gmail.composeTrigger.draftAccess 欄位設為 METADATA 。 |
gmail.ccRecipients[] |
list of strings 預設為停用。外掛程式正在編寫外掛程式草稿中的「副本:」收件者電子郵件地址清單正在撰寫中。如要開啟這個欄位,您必須將資訊清單中的 addOns.gmail.composeTrigger.draftAccess 欄位設為 METADATA 。 |
gmail.messageId |
string 目前開啟的 Gmail 郵件 ID。 |
gmail.threadId |
string 目前開啟的 Gmail 會話串 ID。 |
gmail.toRecipients[] |
list of strings 預設為停用。外掛程式正在撰寫外掛程式草稿中的「收件者:」收件者電子郵件地址清單正在撰寫中。如要開啟這個欄位,您必須將資訊清單中的 addOns.gmail.composeTrigger.draftAccess 欄位設為 METADATA 。 |
文件事件物件
Google 文件事件物件是整體事件物件的一部分,其中含有使用者文件及其內容的相關資訊。只有在主應用程式是 Google 文件時,才會顯示在事件物件中。
文件事件物件 | |
---|---|
docs.id |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時才會顯示此屬性。在文件 UI 中開啟的文件 ID。 |
docs.title |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時才會顯示此屬性。在 Google 文件 UI 中開啟的文件標題。 |
docs.addonHasFileScopePermission |
boolean 如果為 true ,表示外掛程式已要求並取得 https://www.googleapis.com/auth/drive.file 範圍授權,讓您透過 Google 文件 UI 開啟文件;否則,這個欄位為 false 。 |
docs.matchedUrl.url |
string
只有在符合下列條件時才會顯示:
在 Google 文件中產生預覽畫面的連結網址。如要使用這個欄位,您必須在外掛程式的資訊清單中設定 LinkPreviewTriggers 。詳情請參閱「透過智慧型方塊預覽連結」。
使用者預覽連結 "docs" : { "matchedUrl" : { "url" : "https://www.example.com/12345" } } |
試算表事件物件
試算表事件物件是整體事件物件的一部分,其中含有使用者文件及其內容的相關資訊。只有在代管應用程式是 Google 試算表時,才會出現在事件物件中。
試算表事件物件 | |
---|---|
sheets.id |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時,才會顯示這個範圍。在試算表 UI 中開啟的試算表 ID。
|
sheets.title |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時,才會顯示這個範圍。在試算表 UI 中開啟的試算表標題。
|
sheets.addonHasFileScopePermission |
boolean 如果為 true ,表示外掛程式已要求並取得 https://www.googleapis.com/auth/drive.file 範圍授權,讓您透過試算表 UI 開啟試算表;否則,這個欄位為 false 。 |
sheets.matchedUrl.url |
string
只有在符合下列條件時才會顯示:
在 Google 試算表中產生預覽畫面的連結網址。如要使用這個欄位,您必須在外掛程式的資訊清單中設定 LinkPreviewTriggers 。詳情請參閱「透過智慧型方塊預覽連結」。
使用者預覽連結 "sheets" : { "matchedUrl" : { "url" : "https://www.example.com/12345" } } |
簡報事件物件
簡報事件物件是整體事件物件的一部分,其中含有使用者文件和其中內容的相關資訊。只有在主應用程式是 Google 簡報時,才會顯示在事件物件中。
簡報事件物件 | |
---|---|
slides.id |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時,才會顯示這個範圍。在簡報 UI 中開啟的簡報 ID。
|
slides.title |
string 只有在使用者授權
https://www.googleapis.com/auth/drive.file 範圍時,才會顯示這個範圍。在簡報 UI 中開啟的簡報標題。
|
slides.addonHasFileScopePermission |
boolean 如果為 true ,表示外掛程式要求並收到在 Google 簡報 UI 中開啟簡報的 https://www.googleapis.com/auth/drive.file 範圍授權;否則,這個欄位為 false 。 |
slides.matchedUrl.url |
string
只有在符合下列條件時才會顯示:
在 Google 簡報中產生預覽畫面的連結網址。如要使用這個欄位,您必須在外掛程式的資訊清單中設定 LinkPreviewTriggers 。
詳情請參閱「透過智慧型方塊預覽連結」。
使用者預覽連結 "slides" : { "matchedUrl" : { "url" : "https://www.example.com/12345" } } |