Définir un champ d'étiquette sur un fichier

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

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

ModifyLabelsRequest contient une instance de LabelModification, qui correspond à une modification apportée à un libellé sur un fichier. Il peut également contenir une instance de FieldModification, qui correspond à une modification apportée au champ d'un libellé.

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

Exemple

L'exemple de code suivant montre comment utiliser le fieldId d'un champ de texte pour définir une valeur pour ce Field sur un fichier. Lorsqu'un libellé Field est initialement défini sur un fichier, il est appliqué au fichier. Vous pouvez ensuite annuler la définition d'un seul champ ou supprimer tous les champs associés au libellé. Pour en savoir plus, consultez Supprimer la valeur d'un champ de libellé dans un fichier et Supprimer un libellé d'un fichier.

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

Remplacez les éléments suivants :

  • FIELD_ID : fieldId du champ à modifier. Pour localiser le fieldId, récupérez le libellé à l'aide de l'API Google Drive Labels.
  • VALUE : la nouvelle value pour ce champ.
  • LABEL_ID : labelId du libellé à modifier.
  • FILE_ID : fileId du fichier dont les libellés sont modifiés.

Remarques

  • Pour définir un libellé sans champ, appliquez labelModifications sans fieldModifications.
  • Pour définir des valeurs pour les options du champ de sélection, utilisez l'ID Choice de la valeur que vous pouvez obtenir en récupérant le schéma de libellé dans l'API Drive Labels.
  • Seul un Field compatible avec les listes de valeurs peut avoir plusieurs valeurs définies. Sinon, vous recevrez une réponse d'erreur 400: Bad Request.
  • Définissez le type de valeur approprié pour le Field sélectionné (par exemple, entier, texte, utilisateur, etc.). Sinon, vous recevrez une réponse d'erreur 400: Bad Request. Vous pouvez récupérer le type de données du champ à l'aide de l'API Drive Labels.