Establece un campo de etiqueta en un archivo

En esta página, se describe cómo configurar una etiqueta Field en un solo archivo de Google Drive.

Para agregar metadatos a un archivo mediante la configuración de una etiqueta de archivo, usa el método files.modifyLabels. El cuerpo de la solicitud contiene una instancia de ModifyLabelsRequest para modificar el conjunto de etiquetas de un archivo. La solicitud puede contener varias modificaciones que se aplican de forma atómica. Es decir, si alguna modificación no es válida, no se aplicará toda la actualización y no se aplicará ninguno de los cambios (potencialmente dependientes).

ModifyLabelsRequest contiene una instancia de LabelModification, que es una modificación de una etiqueta de un archivo. También puede contener una instancia de FieldModification, que es una modificación del campo de una etiqueta.

Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene las etiquetas que la solicitud agregó o actualizó. Estos existen en un objeto modifiedLabels de tipo Label.

Ejemplo

En la siguiente muestra de código, verás cómo usar fieldId de un campo de texto para establecer un valor para este elemento Field en un archivo. Cuando se configura inicialmente una etiqueta Field en un archivo, esta aplica la etiqueta al archivo. Luego, puedes anular la configuración de un solo campo o quitar todos los campos asociados con la etiqueta. Para obtener más información, consulta Quita la configuración de un campo de etiqueta en un archivo y Quita una etiqueta de un archivo.

Java

LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setSetTextValues(ImmutableList.of("VALUE"));

ModifyLabelsRequest modifyLabelsRequest =
  new ModifyLabelsRequest()
      .setLabelModifications(
          ImmutableList.of(
              new LabelModification()
                .setLabelId("LABEL_ID")
                .setFieldModifications(ImmutableList.of(fieldModification))));

ModifyLabelsResponse modifyLabelsResponse = driveService.files().modifyLabels("FILE_ID", modifyLabelsRequest).execute();

Python

field_modification = {'fieldId':'FIELD_ID','setTextValues':['VALUE']}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}

modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();

Node.js

/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function setLabelTextField() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  const fieldModification = {
    'fieldId': 'FIELD_ID',
    'setTextValues': ['VALUE'],
  };
  const labelModification = {
    'labelId': 'LABEL_ID',
    'fieldModifications': [fieldModification],
  };
  const labelModificationRequest = {
    'labelModifications': [labelModification],
  };
  try {
    const updateResponse = await service.files.modifyLabels({
      fileId: 'FILE_ID',
      resource: labelModificationRequest,
    });
    return updateResponse;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }
}

Reemplaza lo siguiente:

  • FIELD_ID: El fieldId del campo que se modificará. Para ubicar fieldId, recupera la etiqueta con la API de etiquetas de Google Drive.
  • VALUE: Es el value nuevo para este campo.
  • LABEL_ID: El labelId de la etiqueta que se modificará.
  • FILE_ID: El fileId del archivo para el que se modifican las etiquetas.

Notas

  • Para configurar una etiqueta sin campos, aplica labelModifications sin fieldModifications presente.
  • Si quieres establecer valores para las opciones del campo de selección, usa el ID Choice del valor que puedes obtener si recuperas el esquema de etiquetas en la API de Drive Labels.
  • Solo un Field que admite listas de valores puede tener varios valores configurados. De lo contrario, recibirás una respuesta de error 400: Bad Request.
  • Establece el tipo de valor adecuado para el Field seleccionado (como un número entero, un texto, un usuario, etc.); de lo contrario, recibirás una respuesta de error 400: Bad Request. Puedes recuperar el tipo de datos del campo mediante la API de Drive Labels.