更新标签

您可以通过应用一组更新请求来更新单个标签,从而生成新的草稿修订版本。例如,您可以更新现有标签属性(标签说明),也可以向标签添加新的 Field

由于该方法接受更新 Request 对象列表,因此标签更新相当于批量更新。它按照批处理请求中指定的相同顺序进行更新。批量更新中的更新以原子方式应用。也就是说,如果该批次中的任何请求失败,则整个更新都将失败,并且不会应用任何(可能相关的)更改。该标签保持不变。

如果更新成功,必须先发布生成的草稿修订版本,然后这些更改才能用于任何云端硬盘内容。

更新标签对象

标签包含许多其他可以更新的对象类型,例如:

  • 标签属性
  • 字段和字段类型
  • 选择选项和选择选项属性

这些是控制标签外观和操作的众多对象的一部分。

操作类别

labels.delta 方法支持的以下操作可分为以下几大类:

Category 说明
创建添加对象。
更新更新对象的某些属性。
启用启用对象。
停用停用对象。
删除移除对象。

下一部分将使用这些类别来描述特定操作的行为。

更新请求

labels.delta 方法采用一个或多个 Request 对象,每个对象指定一种要执行的请求类型。请求类型多种多样以下是请求类型的细分,分为不同的类别。

请求类型
标签属性
更新 UpdateLabelPropertiesRequest
字段
创建 CreateFieldRequest
更新 UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
启用 EnableFieldRequest
停用 DisableFieldRequest
删除 DeleteFieldRequest
选择选项
创建 CreateSelectionChoiceRequest
更新 UpdateSelectionChoicePropertiesRequest
启用 EnableSelectionChoiceRequest
停用 DisableSelectionChoiceRequest
删除 DeleteSelectionChoiceRequest

字段掩码

许多“更新”和“停用”类型的请求都需要 FieldMask。这是要更新的字段列表(以英文逗号分隔),其中其他字段保持不变。必须使用掩码,以确保仅更新您要修改的字段。您必须至少指定一个字段。

示例

如需更新标签,请对 labels 集合使用 delta 方法。

您还必须指定:

  • useAdminAccesstrue,以便使用用户的管理员凭据。在允许访问之前,服务器会验证用户是否为标签的管理员。

  • Request,用于指定标签的适用更新。

  • 通过 property 方法 title 标签。

  • 一个或多个 Field

  • 表示每个标签的标签资源。它包含资源 NameID,这是标签的全局唯一标识符。

  • LabelViewLABEL_VIEW_FULL,用于设置应用于标签响应的 Resource 视图。LABEL_VIEW_FULL 会返回所有可能的字段。

此示例使用 ID 更新正确的标签。

Python

body = {
'use_admin_access': True,
'requests': [{
  'update_label': {
    'properties': {
      'title': 'TITLE'
    },
    'update_mask': {
      'paths': ['title']
    }
  },
}, {
  'create_field': {
    'field': {
      'properties': {
        'display_name': 'DISPLAY_NAME'
      },
      'text_options': {}
    }
  }
}],
'view': 'LABEL_VIEW_FULL'
}
response = service.labels().delta(
  body=body,
  name='labels/ID').execute()

Node.js

var body = {
  'use_admin_access': true,
  'requests': [{
    'update_label': {
      'properties': {
        'title': 'TITLE'
      },
      'update_mask': {
        'paths': ['title']
      }
    },
  }, {
    'create_field': {
      'field': {
        'properties': {
          'display_name': 'DISPLAY_NAME'
        },
        'text_options': {}
      }
    }
  }],
  'view': 'LABEL_VIEW_FULL'
};
service.labels.delta({
  'resource': body,
  'name': 'labels/ID'
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

标签、字段或选择更新,标签的修订版本 ID 递增,标签作为草稿标签存储在数据库中。此标签的 StatePUBLISHEDhasUnpublishedChanges=true 表示存在草稿更改,但这些更改对用户不可用。更新后的标签必须处于 PUBLISHED 状态,用户才能看到相应更改。如需了解详情,请参阅标签生命周期