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 可能晚於這些變更建立的修訂版本 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。