En esta página, se describe cómo establecer una etiqueta Field
en un solo archivo de Google Drive.
Para agregar metadatos a un archivo configurando 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, toda la actualización no se realiza correctamente y no se aplica ninguno de los cambios (que podrían ser dependientes).
El objeto ModifyLabelsRequest
contiene una instancia de LabelModification
, que es una modificación de una etiqueta en un archivo. También puede contener una instancia de FieldModification
, que es una modificación en el campo de una etiqueta.
Si la operación se realiza correctamente, el cuerpo de la respuesta contiene las etiquetas que se agregaron o actualizaron con la solicitud. Estos existen dentro de un objeto modifiedLabels
del tipo Label
.
Ejemplo
En el siguiente ejemplo de código, se muestra cómo usar el fieldId
de un campo de texto para establecer un valor para este Field
en un archivo. Cuando se establece inicialmente una etiqueta Field
en un archivo, se 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 Cómo anular la configuración de un campo de etiqueta en un archivo y Cómo quitar 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: Es el
fieldId
del campo que se modificará. Para ubicar elfieldId
, recupera la etiqueta con la API de Google Drive Labels. - VALUE: Es el nuevo
value
para este campo. - LABEL_ID: Es el
labelId
de la etiqueta que se modificará. - FILE_ID: Es el
fileId
del archivo para el que se modifican las etiquetas.
Notas
- Para establecer una etiqueta sin campos, aplica
labelModifications
sin ningúnfieldModifications
presente. - Para establecer valores para las opciones del campo de selección, usa el ID de
Choice
del valor que puedes obtener recuperando el esquema de etiquetas en la API de Drive Labels. - Solo un
Field
que admita listas de valores puede tener varios valores establecidos. De lo contrario, recibirás una respuesta de error400: Bad Request
. - Establece el tipo de valor adecuado para el
Field
seleccionado (como número entero, texto, usuario, etcétera). De lo contrario, recibirás una respuesta de error400: Bad Request
. Puedes recuperar el tipo de datos del campo con la API de Drive Labels.