如要新增表單內容,或是更新設定、中繼資料或內容,請使用 batchUpdate()
方法,此方法會批次變更,如此一來,即使某項要求失敗,系統也不會寫入其他 (可能相依) 的變更。
batchUpdate()
方法會傳回回應主體,其中是每項要求的回應。每個回應會佔用與對應要求相同的索引;如果要求沒有適用的回應,該索引的回應將為空白。
事前準備
請先執行下列工作,再繼續處理本頁面中的工作:
- 按照早期採用者計畫操作說明完成授權/驗證和憑證設定
更新中繼資料、設定或項目
以下範例說明如何更新表單中繼資料,但內容和設定的結構相同,而是使用 updateItem
或 updateSettings
要求,而非 updateFormInfo
。在每個要求中,您皆提供要變更的欄位名稱、要更新的值,以及 updateMask
值,以便將變更限制在指定欄位。
REST
如要更新表單說明,請使用表單 ID 和更新後的說明值呼叫 batchUpdate()
方法。
要求主體範例
"requests": [{
"updateFormInfo": {
"info": {
"description": "Please complete this quiz based on this week's readings for class."
},
"updateMask": "description"
}
}]
Python
Node.js
新增項目
以下範例說明如何在表單中新增內容。新增內容時,您必須提供索引插入新內容的位置。舉例來說,索引為 0
的位置會在表單開頭插入內容。
REST
如要在表單中新增項目,請使用表單 ID、項目資訊和所需位置呼叫 batchUpdate()
方法。
要求主體範例
"requests": [{
"createItem": {
"item": {
"title": "Homework video",
"description": "Quizzes in Google Forms",
"videoItem": {
"video": {
"youtubeUri": "https://www.youtube.com/watch?v=Lt5HqPvM-eI"
}
}},
"location": {
"index": 0
}
}]
Python
Node.js
要求訂單
batchUpdate()
方法接受子要求陣列,例如 createItem
和 updateItem
。子要求會按照提供的順序逐一驗證。
例如:batchUpdate
要求會有一個 requests
陣列,其中包含兩個 createItem
子要求。子要求 A 含有 location.index
0,子要求 B 則含有 location.index
1。如果 requests
陣列為 [A, B],batchUpdate
就會成功。如果陣列是 [B, A],則 batchUpdate
就會失敗,因為 location.index
1 無效,除非表單已含有索引 0 的項目。