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)

更新的回复。此表与更新请求一一对应,但对某些请求的回复可能为空。

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 相同(或者字段掩码中的 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 bad request 错误。

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。