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. 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é.

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 l'fieldId d'un champ de texte pour définir une valeur pour ce Field sur un . Lorsqu'un libellé Field est initialement défini sur un fichier, il l'applique le fichier. Vous pouvez ensuite annuler la définition d'un seul champ ou supprimer tous les champs associés à le libellé. Pour en savoir plus, consultez la section Désactiver un champ de libellé au niveau d'une 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 fieldId, récupérez l'étiquette à l'aide de la méthode API Google Drive Libellés :
  • VALUE: nouveau value pour ce champ.
  • LABEL_ID: labelId du libellé à modifier.
  • FILE_ID: le fileId du fichier pour lequel les libellés sont modifiées.

Remarques

  • Pour définir un libellé sans champ, appliquez labelModifications sans champ fieldModifications présentes.
  • Pour définir les valeurs des options du champ de sélection, utilisez la méthode Identifiant Choice de la valeur que vous pouvez obtenir en récupérant le schéma de l'étiquette dans API Drive Libellés :
  • Seul un élément Field qui prend en charge les listes de valeurs peut avoir plusieurs valeurs. Sinon, vous recevrez une réponse d'erreur 400: Bad Request.
  • Définissez le type de valeur approprié pour l'élément 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 d'un champ à l'aide de la méthode API Drive Libellés :