Обновить ярлык

Обновить отдельную метку можно, применив набор запросов на обновление, в результате чего будет создана новая версия черновика. Например, можно обновить существующее свойство метки (описание метки) или добавить новое Field к метке.

Обновление метки выполняется в пакетном режиме, поскольку метод принимает список объектов Request на обновление. Он выполняет обновления в том же порядке, который указан в пакетном запросе. Обновления в пакетном режиме применяются атомарно. То есть, если какой-либо запрос в пакете окажется неудачным, то все обновление будет неудачным, и ни одно из (потенциально зависимых) изменений не будет применено. Метка останется без изменений.

Если обновление пройдет успешно, полученную черновую версию необходимо опубликовать до того, как изменения можно будет использовать с любым элементом Google Диска.

Обновить объекты меток

Метка включает в себя множество других типов объектов, которые можно обновлять, например:

  • Свойства метки
  • Поля и типы полей
  • Варианты выбора и свойства вариантов выбора

Это лишь некоторые из многочисленных объектов, которые управляют внешним видом и работой этикетки.

Категории операций

Следующие операции, поддерживаемые методом labels.delta , можно сгруппировать в следующие широкие категории:

Категория Описание
Создавать Добавить объекты.
Обновлять Обновить определенные свойства объекта.
Давать возможность Включить объекты.
Запрещать Отключить объекты.
Удалить Удалите объекты.

В следующем разделе эти категории используются для описания поведения конкретных операций.

Запросы на обновление

Метод labels.delta принимает один или несколько объектов Request , каждый из которых определяет тип выполняемого запроса. Существует множество различных типов запросов. Вот краткое описание типов запросов, сгруппированных по различным категориям.

Тип запроса
Свойства метки
Обновлять UpdateLabelPropertiesRequest
Поле
Создавать CreateFieldRequest
Обновлять UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Давать возможность EnableFieldRequest
Запрещать DisableFieldRequest
Удалить DeleteFieldRequest
Выбор
Создавать CreateSelectionChoiceRequest
Обновлять UpdateSelectionChoicePropertiesRequest
Давать возможность EnableSelectionChoiceRequest
Запрещать DisableSelectionChoiceRequest
Удалить DeleteSelectionChoiceRequest

Полевые маски

Для многих запросов типа «Обновление» и «Отключение» требуется FieldMask . Это список полей, разделенных запятыми, которые вы хотите обновить, оставив остальные поля без изменений. Маска необходима для того, чтобы обновлялись только те поля, которые вы хотите отредактировать. Необходимо указать как минимум одно поле.

Пример

Для обновления метки используйте метод delta для коллекции labels .

Также необходимо указать:

  • Если useAdminAccess установлен true , используется учетная запись администратора пользователя. Сервер проверяет, является ли пользователь администратором для данной метки, прежде чем разрешить доступ.

  • Request , определяющий необходимые обновления метки.

  • title метки, заданный методом property .

  • Одно или несколько Field .

  • Ресурс Label , представляющий каждую метку. Он содержит Name ресурса и ID , который является глобально уникальным идентификатором для метки.

  • LabelView имеет значение LABEL_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);
});

Метка, поле или выбор обновляются, идентификатор ревизии метки увеличивается, и метка сохраняется в базе данных как черновик. Метка имеет State PUBLISHED с hasUnpublishedChanges=true , что означает наличие черновых изменений, но они недоступны пользователям. Обновленная метка должна быть PUBLISHED прежде чем изменения станут видимыми для пользователей. Для получения дополнительной информации см. раздел «Жизненный цикл метки» .