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 相同(或不在字段掩码中)即可修改项。

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。