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
permettant de modifier l'ensemble des libellés d'un fichier. La requête peut contenir plusieurs modifications appliquées de manière atomique. Autrement dit, si des 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é.
Si la requête aboutit, le corps de la réponse contient les étiquettes ajoutées ou mises à jour par la requête. Elles 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 fichier. Lorsqu'un libellé Field
est initialement défini sur un fichier, il l'applique 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 les sections Annuler la définition d'un champ d'étiquette sur 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 lefieldId
, récupérez le libellé à l'aide de l'API Google Drive Étiquettes. - VALUE: nouvelle valeur
value
pour ce champ. - LABEL_ID:
labelId
du libellé à modifier. - FILE_ID:
fileId
du fichier pour lequel les libellés sont modifiés.
Remarques
- Pour définir un libellé sans champ, appliquez
labelModifications
sansfieldModifications
. - 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 du libellé dans l'API Drive Étiquettes. - Vous ne pouvez définir plusieurs valeurs que pour un objet
Field
compatible avec les listes de valeurs. Sinon, vous recevrez une réponse d'erreur400: Bad Request
. - Définissez le type de valeur approprié pour l'élément
Field
sélectionné (nombre entier, texte, utilisateur, etc.). Sinon, vous recevrez une réponse d'erreur400: Bad Request
. Vous pouvez récupérer le type de données du champ à l'aide de l'API Drive Étiquettes.