Method: forms.batchUpdate

大量更新表單。

HTTP 要求

POST https://forms.googleapis.com/v1/forms/{formId}:batchUpdate

這個網址使用 gRPC 轉碼語法。

路徑參數

參數
formId

string

必要欄位。表單 ID。

要求主體

要求主體的資料會採用以下結構:

JSON 表示法
{
  "includeFormInResponse": boolean,
  "requests": [
    {
      object (Request)
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
欄位
includeFormInResponse

boolean

是否要在回應中傳回模型的更新版本。

requests[]

object (Request)

必要欄位。這個批次的更新要求。

writeControl

object (WriteControl)

提供控管寫入要求執行方式。

回應主體

對 BatchUpdateFormRequest 的回應。

如果成功,回應主體即會包含具有以下結構的資料:

JSON 表示法
{
  "form": {
    object (Form)
  },
  "replies": [
    {
      object (Response)
    }
  ],
  "writeControl": {
    object (WriteControl)
  }
}
欄位
form

object (Form)

根據布林值要求欄位 includeFormInResponse,系統會傳回包含所有已套用異動/更新內容的表單。這個值可能晚於這些變更建立的修訂版本 ID。

replies[]

object (Response)

更新回覆。此範例將 1:1 與更新要求對應,但是對於部分要求的回覆可能是空白。

writeControl

object (WriteControl)

套用要求後已更新的寫入控制項。

授權範圍

需要下列其中一種 OAuth 範圍:

  • https://www.googleapis.com/auth/drive
  • https://www.googleapis.com/auth/drive.file
  • https://www.googleapis.com/auth/forms.body

詳情請參閱授權指南

要求

可發出的更新要求種類。

JSON 表示法
{

  // Union field kind can be only one of the following:
  "updateFormInfo": {
    object (UpdateFormInfoRequest)
  },
  "updateSettings": {
    object (UpdateSettingsRequest)
  },
  "createItem": {
    object (CreateItemRequest)
  },
  "moveItem": {
    object (MoveItemRequest)
  },
  "deleteItem": {
    object (DeleteItemRequest)
  },
  "updateItem": {
    object (UpdateItemRequest)
  }
  // End of list of possible types for union field kind.
}
欄位
聯集欄位 kind。要求種類。kind 只能是下列其中一項:
updateFormInfo

object (UpdateFormInfoRequest)

更新表單資訊。

updateSettings

object (UpdateSettingsRequest)

更新表單設定。

createItem

object (CreateItemRequest)

建立新項目。

moveItem

object (MoveItemRequest)

將項目移至指定位置。

deleteItem

object (DeleteItemRequest)

刪除項目。

updateItem

object (UpdateItemRequest)

更新項目。

UpdateFormInfoRequest

更新表單資訊。

JSON 表示法
{
  "info": {
    object (Info)
  },
  "updateMask": string
}
欄位
info

object (Info)

要更新的資訊。

updateMask

string (FieldMask format)

必要欄位。只有這個遮罩命名的值會變更。至少須指定一個欄位。根 info 為隱含,因此不應指定。單一 "*" 可做為更新每個欄位的簡寫。

此為以半形逗號分隔的完整欄位名稱清單。範例:"user.displayName,photo"

UpdateSettingsRequest

更新表單的FormSettings

JSON 表示法
{
  "settings": {
    object (FormSettings)
  },
  "updateMask": string
}
欄位
settings

object (FormSettings)

必要欄位。要更新的設定。

updateMask

string (FieldMask format)

必要欄位。只有這個遮罩命名的值會變更。至少須指定一個欄位。根 settings 為隱含,因此不應指定。單一 "*" 可做為更新每個欄位的簡寫。

此為以半形逗號分隔的完整欄位名稱清單。範例:"user.displayName,photo"

CreateItemRequest

在表單中建立項目。

JSON 表示法
{
  "item": {
    object (Item)
  },
  "location": {
    object (Location)
  }
}
欄位
item

object (Item)

必要欄位。要建立的項目。

location

object (Location)

必要欄位。放置新項目的位置。

位置

表單中的特定位置。

JSON 表示法
{

  // Union field where can be only one of the following:
  "index": integer
  // End of list of possible types for union field where.
}
欄位
聯集欄位 where。必要欄位。在表單中指定位置。where 只能是下列其中一項:
index

integer

表單中項目的索引。這必須位於範圍內

[0..N)

,其中「N」代表表單中的項目數量。

MoveItemRequest

移動表單中的項目。

JSON 表示法
{
  "originalLocation": {
    object (Location)
  },
  "newLocation": {
    object (Location)
  }
}
欄位
originalLocation

object (Location)

必要欄位。要移動的項目所在位置。

newLocation

object (Location)

必要欄位。項目的新位置。

DeleteItemRequest

刪除表單中的項目。

JSON 表示法
{
  "location": {
    object (Location)
  }
}
欄位
location

object (Location)

必要欄位。要刪除的項目所在位置。

UpdateItemRequest

更新表單中的項目。

JSON 表示法
{
  "item": {
    object (Item)
  },
  "location": {
    object (Location)
  },
  "updateMask": string
}
欄位
item

object (Item)

必要欄位。項目的新值。請注意,如果已提供項目 ID 和問題 ID (且位於欄位遮罩中),就必須使用這些項目。如果 ID 空白 (且在欄位遮罩中),系統會產生新的 ID。也就是說,您可以透過 forms.get 取得表單,依需求修改項目的本機副本,並使用 UpdateItemRequest 回傳 ID 相同 (或不在欄位遮罩中) 來修改項目。

location

object (Location)

必要欄位。識別待更新項目的位置。

updateMask

string (FieldMask format)

必要欄位。只有這個遮罩命名的值會變更。

此為以半形逗號分隔的完整欄位名稱清單。範例:"user.displayName,photo"

WriteControl

提供控管寫入要求執行方式。

JSON 表示法
{

  // Union field control can be only one of the following:
  "requiredRevisionId": string,
  "targetRevisionId": string
  // End of list of possible types for union field control.
}
欄位
聯集欄位 control。決定要套用的變更表單的修訂版本,以及要求如果該修訂版本並非表單目前的修訂版本,應如何處理要求的行為。control 只能是下列其中一項:
requiredRevisionId

string

套用寫入要求所套用表單的修訂版本 ID。如果這不是表單的最新版本,系統就無法處理要求,且會傳回 400 錯誤的要求錯誤。

targetRevisionId

string

套用寫入要求的目標表單修訂版本 ID。

如有任何變更在此修訂版本後發生,系統會根據這些變更轉換這個更新要求中的變更。這會使新的表單修訂版本同時包含要求中的變更與介入變更,以及伺服器解決衝突的變更。

目標修訂版本 ID 只能用來寫入近期表單版本,如果目標修訂版本距離最新的修訂版本過遠,系統不會處理該要求,並傳回 400 (錯誤要求錯誤)。系統會在閱讀最新版本的表單後重新嘗試提出要求。在多數情況下,目標修訂版本 ID 讀取後仍會保持有效的幾分鐘,但對於經常編輯的表單,這個視窗可能會縮短。

回應

來自更新的單一回應。

JSON 表示法
{

  // Union field kind can be only one of the following:
  "createItem": {
    object (CreateItemResponse)
  }
  // End of list of possible types for union field kind.
}
欄位
聯集欄位 kind。回應種類。kind 只能是下列其中一項:
createItem

object (CreateItemResponse)

建立項目的結果。

CreateItemResponse

建立項目的結果。

JSON 表示法
{
  "itemId": string,
  "questionId": [
    string
  ]
}
欄位
itemId

string

建立項目的 ID。

questionId[]

string

這個項目建立的問題群組 ID 會列出為此項目建立的所有問題 ID。