Désactiver un champ de libellé dans un fichier

Cette page explique comment supprimer un libellé Field sur un seul fichier Google Drive.

Pour supprimer les métadonnées d'un fichier en désactivant un libellé, utilisez la méthode files.modifyLabels. Le corps de la requête contient une instance de ModifyLabelsRequest pour modifier l'ensemble de libellés d'un fichier. La requête peut contenir plusieurs modifications appliquées de manière atomique. Autrement dit, si certaines modifications ne sont pas valides, l'ensemble de la mise à jour échoue et aucune des modifications (potentiellement dépendantes) n'est appliquée.

ModifyLabelsRequest contient une instance de LabelModification, qui est une modification d'un libellé sur un fichier. Il peut également contenir une instance de FieldModification, qui est une modification du champ d'un libellé. Pour ne pas définir les valeurs du champ, définissez FieldModification.unsetValues sur True.

Si la requête aboutit, le corps de la réponse contient les libellés ajoutés ou mis à jour par la requête. Ils existent dans un objet modifiedLabels de type Label.

Exemple

L'exemple de code suivant montre comment utiliser fieldId et labelId pour ne pas définir les valeurs de champ sur le fileId associé. Par exemple, si une étiquette contient à la fois des champs de texte et des champs utilisateur, la désactivation du champ de texte le supprime de l'étiquette, mais ne modifie pas le champ utilisateur. En revanche, la suppression d'un libellé supprime à la fois le texte et les champs utilisateur associés au libellé. Pour en savoir plus, consultez la section Supprimer un libellé d'un fichier.

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

Remplacez les éléments suivants :

  • FIELD_ID: fieldId du champ à modifier. Pour localiser l'fieldId, récupérez l'étiquette à l'aide de l'API Google Drive Labels.
  • LABEL_ID: labelId du libellé à modifier.
  • FILE_ID: fileId du fichier pour lequel les libellés sont modifiés.