This page describes how to set a label Field
on a single Google Drive file. To
add metadata to a file by setting a file label, use the
files.modifyLabels
method.
You also need to specify:
The
fieldId
of the field to modify.The new
value
for this field.The
labelId
of the label to modify.The
fileId
of the file for which the labels are modified.
This example uses the fieldId
of a text field to set a value for this Field
on a file. When a label Field
is initially set on a file, it applies the label
to the file. You can then unset a single field or remove all fields associated
with the label. For more information, see
Unset a label field on a file and
Remove a label from a file.
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]});
Node.js
/**
* Set a label with a text field on a Drive file
* @return{obj} updated label data
**/
async function modifyLabelTextField() {
// 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;
}
}
Notes
- To set a label with no fields, apply
labelModifications
with nofieldModifications
present. - To set values for selection fields, use the choice id of the value that you can get by fetching the label schema in the Drive Drive Labels API.
- Only a
Field
that supports lists of values can have multiple values set, otherwise you'll receive a400: Bad Request
error response. - To locate the
fieldId
, retrieve the label using the Drive Drive Labels API. - Set the proper value type for the selected
field
(such as integer, text, user, etc.), otherwise you'll receive a400: Bad Request
error response. You can retrieve the field data type using the Drive Drive Labels API.