簡易觸發條件和可安裝的觸發條件可讓 Apps Script 在發生特定事件時自動執行函式。觸發條件觸發時,Apps Script 會將事件物件做為引數傳遞,通常稱為 e
。事件物件包含導致觸發條件觸發的背景資訊的相關資訊。舉例來說,下列程式碼範例是 Google 試算表指令碼的簡易 onEdit(e)
觸發條件,該指令碼使用事件物件來判斷編輯的是哪個儲存格。
function onEdit(e){
// Set a comment on the edited cell to indicate when it was changed.
var range = e.range;
range.setNote('Last modified: ' + new Date());
}
本頁面針對不同觸發條件類型,說明事件物件中的欄位。
Google 試算表活動
不同的 Google 試算表專屬觸發條件可讓指令碼回應試算表中的使用者動作。
開啟(簡單和可安裝) |
|
---|---|
authMode |
LIMITED |
source |
Spreadsheet |
triggerUid |
產生這個事件的觸發條件 ID (僅限可安裝的觸發條件)。 4034124084959907503 |
user |
amin@example.com |
轉乘(可安裝) |
|
---|---|
authMode |
FULL |
changeType |
變更的類型 ( INSERT_ROW |
source |
Spreadsheet |
triggerUid |
產生這個事件的觸發條件 ID。 4034124084959907503 |
user |
amin@example.com |
編輯(簡單和可安裝) |
|
---|---|
authMode |
LIMITED |
oldValue |
編輯前的儲存格值 (如果有的話)。只有在編輯範圍是單一儲存格時,才能使用這個值。如果儲存格先前沒有內容,系統就不會定義該儲存格。 1234 |
range |
Range |
source |
Spreadsheet |
triggerUid |
產生這個事件的觸發條件 ID (僅限可安裝的觸發條件)。 4034124084959907503 |
user |
amin@example.com |
value |
編輯後的新儲存格值。只有在編輯範圍是單一儲存格時,才能使用這個值。 10 |
提交表單(可安裝) |
|
---|---|
authMode |
FULL |
namedValues |
這個物件包含表單提交內容中的問題名稱和值。 { 'First Name': ['Jane'], 'Timestamp': ['6/7/2015 20:54:13'], 'Last Name': ['Doe'] } |
range |
Range |
triggerUid |
產生這個事件的觸發條件 ID。 4034124084959907503 |
values |
具有相同值的陣列,按照它們在試算表中出現的順序排列。 ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
Google 文件活動
設定觸發條件可讓 Google 文件在使用者開啟文件時做出回應。
開啟(簡單和可安裝) |
|
---|---|
authMode |
LIMITED |
source |
Document |
triggerUid |
產生這個事件的觸發條件 ID (僅限可安裝的觸發條件)。 4034124084959907503 |
user |
amin@example.com |
Google 簡報活動
設定觸發條件可讓 Google 簡報在使用者開啟簡報時回應要求。
開啟(簡單) |
|
---|---|
authMode |
LIMITED |
source |
Presentation |
user |
amin@example.com |
Google 表單事件
使用者編輯表單或提交回應時,Google 表單專屬觸發條件可讓指令碼回應。
開啟* (簡單和可安裝) |
|
---|---|
authMode |
LIMITED |
source |
Form |
triggerUid |
產生這個事件的觸發條件 ID (僅限可安裝的觸發條件)。 4034124084959907503 |
user |
amin@example.com |
* 如果使用者開啟表單進行回覆,而是在編輯者開啟表單修改內容時,就不會發生這個事件。
提交表單(可安裝) |
|
---|---|
authMode |
FULL |
response |
FormResponse |
source |
Form |
triggerUid |
產生這個事件的觸發條件 ID。 4034124084959907503 |
Google 日曆活動
當使用者的日曆活動更新 (建立、編輯或刪除) 時,日曆觸發條件就會觸發。
這些觸發條件不會指出是哪些事件發生變更或已變更。而是指出程式碼需要執行增量同步處理作業,才能掌握近期的日曆變更。如需這項程序的完整說明,請參閱 calendar API 的同步處理資源指南。
如要與 Apps Script 中的日曆同步處理,請執行下列步驟:
- 為指令碼專案啟用日曆進階服務。內建的日曆服務不足以滿足這個工作流程。
- 決定要同步處理哪些日曆。針對每個這類日曆,使用日曆進階服務的 Events.list() 方法執行初始同步處理。
- 初始同步處理的結果會傳回該日曆的
nextSyncToken
。儲存這組權杖以供日後使用。 - 當 Apps Script
EventUpdated
觸發條件觸發表示日曆活動變更時,請使用儲存的nextSyncToken
為受影響的日曆執行漸進式同步處理。這基本上是另一個 Events.list() 要求,但提供nextSyncToken
會將回應限制在上次同步處理後變更的事件。 - 檢查同步處理的回應,瞭解哪些事件已更新,並讓程式碼正確回應。例如,您可以記錄變更、更新試算表、傳送電子郵件通知或執行其他操作。
- 將您為該日曆儲存的
nextSyncToken
更新為漸進式同步處理要求傳回的nextSyncToken
。這會強制下次同步處理作業只傳回最新的變更。
EventUpdated(可安裝) |
|
---|---|
authMode |
FULL |
calendarId |
發生事件更新的日曆字串 ID。 susan@example.com |
triggerUid |
產生這個事件的觸發條件 ID。 4034124084959907503 |
Google Workspace 外掛程式活動
使用者安裝外掛程式時,onInstall()
觸發條件會自動執行。
安裝(簡單) |
|
---|---|
authMode |
FULL |
Google Chat 應用程式事件
如要瞭解 Google Chat 中的事件物件,請參閱「接收及回應與 Google Chat 應用程式的互動」。
時間導向事件
時間導向觸發條件 (又稱為時鐘觸發條件) 可讓指令碼在特定時間或週期性間隔執行。
時間導向 (可安裝) | |
---|---|
authMode |
FULL |
day-of-month |
介於 由於這個屬性名稱含有破折號,因此必須透過 31 |
day-of-week |
介於 由於這個屬性名稱含有破折號,因此必須透過 7 |
hour |
介於 23 |
minute |
介於 59 |
month |
介於 12 |
second |
介於 59 |
timezone |
時區。 UTC |
triggerUid |
產生這個事件的觸發條件 ID。 4034124084959907503 |
week-of-year |
介於 由於這個屬性名稱含有破折號,因此必須透過 52 |
year |
所屬年。 2015 |