Désactiver un champ de libellé dans un fichier

Cette page explique comment annuler la définition d'un libellé Field sur un seul fichier Google Drive.

Pour supprimer des métadonnées d'un fichier en annulant un libellé de fichier, utilisez la méthode files.modifyLabels. La corps de la requête contient une instance de ModifyLabelsRequest pour modifier l'ensemble d'étiquettes d'un fichier. La requête peut contenir plusieurs des modifications appliquées de manière atomique. Autrement dit, si des modifications est valide, cela signifie que la mise à jour échoue dans son intégralité et qu'aucune dépendantes) sont appliquées.

Le ModifyLabelsRequest contient une instance de LabelModification qui est une modification d'un libellé dans un fichier. Il peut également contenir une instance de FieldModification qui est une modification du champ d'un libellé. Pour annuler la définition des valeurs du champ, définissez FieldModification.unsetValues sur True.

Si l'opération réussit, la réponse corps contient les étiquettes ajoutées ou mises à jour par la requête. Celles-ci existent dans un Objet modifiedLabels de type Label.

Exemple

L'exemple de code suivant montre comment utiliser fieldId et labelId pour annuler la définition les valeurs des champs du fileId associé. Par exemple, si une étiquette contient à la fois des champs de texte et des champs utilisateur. Si vous désactivez le champ de texte, il sera supprimé du libellé. mais le champ de l'utilisateur reste inchangé. En revanche, supprimer un libellé supprime à la fois de texte et les champs utilisateur associés au libellé. Pour en savoir plus, consultez 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 fieldId, récupérez l'étiquette à l'aide de la méthode API Google Drive Libellés :
  • LABEL_ID: labelId du libellé à modifier.
  • FILE_ID: le fileId du fichier pour lequel les libellés sont modifiées.