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

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

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

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

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

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

  • Properties метки
  • Объекты Field и типы полей
  • Choice и Properties выбора

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

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

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

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

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

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

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

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

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

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

Пример

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

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

  • Параметр запроса useAdminAccess устанавливается в true , чтобы использовать учетные данные администратора пользователя. Прежде чем разрешить доступ, сервер проверяет, обладает ли пользователь необходимыми правами администратора по управлению метками классификации .

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

  • title метки задается через объект Properties .

  • Один или несколько объектов Field .

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

  • Объект LabelView с параметром LABEL_VIEW_FULL используется для установки представления ресурса, применяемого к ответам меток. LABEL_VIEW_FULL возвращает все возможные поля.

В следующем примере кода показано, как использовать id метки для обновления нужной метки:

Python

body = {
    'useAdminAccess': True,
    'requests': [
        {
            'updateLabel': {
                'properties': {
                    'title': 'TITLE'
                },
                'updateMask': 'title'
            }
        },
        {
            'createField': {
                'field': {
                    'properties': {
                        'displayName': 'DISPLAY_NAME'
                    },
                    'textOptions': {}
                }
            }
        }
    ],
    'view': 'LABEL_VIEW_FULL'
}

response = service.labels().delta(
    body=body,
    name='labels/ID'
).execute()

Node.js

var body = {
  'useAdminAccess': true,
  'requests': [
    {
      'updateLabel': {
        'properties': {
          'title': 'TITLE'
        },
        'updateMask': 'title'
      }
    },
    {
      'createField': {
        'field': {
          'properties': {
            'displayName': 'DISPLAY_NAME'
          },
          'textOptions': {}
        }
      }
    }
  ],
  'view': 'LABEL_VIEW_FULL'
};

service.labels.delta({
  name: 'labels/ID',
  requestBody: body
}, (err, res) => {
  if (err) return console.error('The API returned an error: ' + err);
  console.log(res);
});

Замените следующее:

  • TITLE : Название этикетки.
  • DISPLAY_NAME : Отображаемое имя поля.
  • ID : Идентификатор метки.

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