Actualiza una etiqueta

Puedes actualizar una sola etiqueta con la API de Google Drive Labels aplicando un conjunto de solicitudes de actualización que dan como resultado una nueva revisión de borrador. Por ejemplo, puedes actualizar una etiqueta existente Properties (la descripción básica de la etiqueta) o agregar un nuevo Field a la etiqueta.

La actualización de la etiqueta actúa como una actualización por lotes, ya que el método toma una lista de objetos Request de actualización. Realiza actualizaciones según el mismo orden especificado en la solicitud por lotes. Las actualizaciones en la actualización por lotes se aplican de forma atómica. Es decir, si alguna solicitud del lote no es satisfactoria, toda la actualización no será satisfactoria y no se aplicará ninguno de los cambios (potencialmente dependientes). La etiqueta no se modifica.

Si la actualización es satisfactoria, se debe publicar la revisión de borrador resultante antes de que se puedan usar los cambios con cualquier elemento de Google Drive.

Actualizar objetos de etiqueta

Una etiqueta incluye muchos otros tipos de objetos que se pueden actualizar, como los siguientes:

  • Etiqueta Properties
  • Objetos Field y tipos de campos
  • Selección Choice y Selección Choice Properties

Estos son algunos de los muchos objetos que controlan la apariencia y el funcionamiento de una etiqueta.

Categorías de operación

Las siguientes operaciones admitidas por el delta método en el labels recurso se pueden agrupar en las siguientes categorías generales:

Categoría Descripción
CrearAgrega objetos.
ActualizarActualiza ciertas propiedades de un objeto.
HabilitarHabilita objetos.
InhabilitarInhabilita objetos.
BorrarQuita objetos.

Estas categorías se usan en la siguiente sección para describir el comportamiento de operaciones específicas.

Solicitudes de actualización

El método delta funciona tomando uno o más objetos de solicitud, cada uno de los cuales especifica un solo tipo de solicitud para realizar. Hay muchos tipos diferentes de solicitudes. Aquí tienes un desglose de los tipos de solicitudes, agrupados en diferentes categorías.

Objeto de solicitud
Propiedades de la etiqueta
Actualizar UpdateLabelPropertiesRequest
Campo
Crear CreateFieldRequest
Actualizar UpdateFieldPropertiesRequest
UpdateFieldTypeRequest
Habilitar EnableFieldRequest
Inhabilitar DisableFieldRequest
Borrar DeleteFieldRequest
Opción de selección
Crear CreateSelectionChoiceRequest
Actualizar UpdateSelectionChoicePropertiesRequest
Habilitar EnableSelectionChoiceRequest
Inhabilitar DisableSelectionChoiceRequest
Borrar DeleteSelectionChoiceRequest

Máscaras de campo

Muchas de las solicitudes de tipo "Actualizar" y "Inhabilitar" requieren un FieldMask. Esta es una lista de campos delimitada por comas que deseas actualizar mientras dejas los demás campos sin cambios. La máscara es necesaria para asegurarse de que solo se actualicen los campos que deseas editar. Debes especificar al menos un campo.

Ejemplo

Para actualizar una etiqueta, usa el delta método en el labels recurso.

También debes especificar lo siguiente:

  • El parámetro de consulta useAdminAccess se establece en true para usar las credenciales de administrador del usuario. Antes de permitir el acceso, el servidor verifica que el usuario tenga los privilegios de administrador deetiquetas de clasificación de administración necesarios.

  • Un Request que especifica las actualizaciones aplicables a la etiqueta.

  • Una etiqueta title a través del Properties objeto.

  • Uno o más Field objetos.

  • Un recurso labels que representa la etiqueta. Contiene un name y un id, que es un identificador único global para la etiqueta.

  • Un objeto LabelView como LABEL_VIEW_FULL para establecer una vista de recursos que se aplica a las respuestas de etiquetas. LABEL_VIEW_FULL muestra todos los campos posibles.

En la siguiente muestra de código, se muestra cómo usar el id de la etiqueta para actualizar la etiqueta correcta:

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);
});

Reemplaza lo siguiente:

  • TITLE: Es el título de la etiqueta.
  • DISPLAY_NAME: Es el nombre visible del campo.
  • ID: Es el ID de la etiqueta.

Se actualiza la etiqueta, el campo o la opción, se incrementa el ID de revisión de la etiqueta y se almacena en una base de datos como una etiqueta de borrador. La etiqueta tiene el State de PUBLISHED con hasUnpublishedChanges establecido en true, lo que significa que hay cambios de borrador, pero no están disponibles para los usuarios. La etiqueta actualizada debe ser PUBLISHED antes de que los cambios se vuelvan visibles para los usuarios. Para obtener más información, consulta Ciclo de vida de las etiquetas.