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 错误)。阅读最新版本的表单后,您可以重试该请求。在大多数情况下,目标修订 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。