En esta página, se describe cómo desactivar una etiqueta Field
en un solo archivo de Google Drive.
Para quitar metadatos de un archivo mediante la desactivació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 realizará correctamente la actualización completa 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. Para quitar los valores del campo, configura FieldModification.unsetValues
como True
.
Si se ejecuta de forma correcta, el cuerpo de la respuesta contiene las etiquetas que la solicitud agregó o actualizó. Estos se encuentran dentro de un objeto modifiedLabels
de tipo Label
.
Ejemplo
En la siguiente muestra de código, se indica cómo usar fieldId
y labelId
para anular la configuración de los valores de campo en el fileId
asociado. Por ejemplo, si una etiqueta contiene campos de texto y de usuario, cuando se desactiva el campo de texto, se quita de la etiqueta, pero se deja intacto el campo de usuario. Por otro lado, cuando se quita una etiqueta, se borran ambos, los campos de texto y de usuario asociados con ella. Para obtener más información, consulta Cómo quitar una etiqueta de un archivo.
Java
LabelFieldModification fieldModification =
new LabelFieldModification().setFieldId("FIELD_ID").setUnsetValues(true);
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','unsetValues':True}
label_modification = {'labelId':'LABEL_ID', 'fieldModifications':[field_modification]}
modified_labels = drive_service.files().modifyLabels(fileId="FILE_ID", body = {'labelModifications' : [label_modification]}).execute();
Node.js
/**
* Unset a label with a field on a Drive file
* @return{obj} updated label data
**/
async function unsetLabelField() {
// 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',
'unsetValues': True,
};
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 elfieldId
, recupera la etiqueta con la API de Google Drive Labels. - LABEL_ID: El
labelId
de la etiqueta que se modificará. - FILE_ID: El
fileId
del archivo para el que se modifican las etiquetas.