更新标签

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

标签更新会进行批量更新,因为该方法会获取更新列表 Request 对象。它 按照批量请求中指定的相同顺序进行更新。通过 批量更新中的更新以原子方式应用。也就是说,如果 批量更新失败,则整个更新会失败, (潜在的相关更改)。标签保持不变。

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

更新标签对象

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

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

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

操作的类别

以下操作受 labels.delta 方法可以是 可分为以下几大类:

类别 说明
创建添加对象。
更新更新对象的特定属性。
启用启用对象。
停用停用对象。
删除移除对象。

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

更新请求

labels.delta 方法的工作原理 学习一个或多个 Request 对象,每个 用于指定要执行的一种请求类型有很多不同的 各种请求类型下面按请求类型细分为 不同类别。

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

字段掩码

许多“更新”和“停用”类型请求需要 FieldMask。 这是您要更新的字段列表(以英文逗号分隔),同时保留 其他字段保持不变。请务必设置掩码,以确保 要更新的用户你必须至少指定一个字段。

示例

要更新标签,请使用 delta 方法 “labels”集合。

您还必须指定以下内容:

  • useAdminAccesstrue,以使用用户的管理员凭据。通过 服务器在允许前验证用户是否是该标签的管理员 访问权限。

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

  • 标签 title 通过 property 方法。

  • 一个或多个 Field

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

  • LabelViewLABEL_VIEW_FULL,用于设置应用于标签响应的资源视图。 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 也随之递增, 并且该标签作为草稿标签存储在数据库中。标签包含 第 State 行(共 PUBLISHED 行),其中有 hasUnpublishedChanges=true 表示有草稿更改,但并未更改 提供给用户使用更新后的标签必须处于 PUBLISHED 状态,然后才会有更改 显示给用户有关详情,请参阅标签 生命周期