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 (Bad Request Error)。閱讀最新版表單後,您可以重試要求。在大多數情況下,目標修訂版本 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。