Advanced Drive Labels Service

Create and manage labels for your Drive files and folders with the Google Drive Labels advanced service. With this advanced service, you can use all the features of the Drive Labels API in Apps Script.

To apply or remove Drive labels, use the Advanced Drive Service.

Reference

For more information about this service, see the documentation for the Google Drive Labels API. Like all advanced services in Apps Script, the Drive Labels API service uses the same objects, methods, and parameters as the public API.

To report issues and find other support, see the Google Drive Labels API support guide.

Sample code

The sample code below uses version 2 of the API.

List labels

The following code sample shows how to get a list of labels available to the user making the request.

advanced/driveLabels.gs
/** * List labels available to the user. */functionlistLabels(){letpageToken=null;letlabels=[];do{try{constresponse=DriveLabels.Labels.list({publishedOnly:true,pageToken:pageToken});pageToken=response.nextPageToken;labels=labels.concat(response.labels);}catch(err){// TODO (developer) - Handle exceptionconsole.log('Failedtolistlabelswitherror%s',err.message);}}while(pageToken!=null);console.log('Found%dlabels',labels.length);}

Get a label

The following code sample shows how to get a single label by its resource name (which is the string value of the label). To find the label name, get the list of labels through the API or use the Drive labels manager. For more information on the labels manager, go to Manage Drive labels.

advanced/driveLabels.gs
/** * Get a label by name. * @param {string} labelName The label name. */functiongetLabel(labelName){try{constlabel=DriveLabels.Labels.get(labelName,{view:'LABEL_VIEW_FULL'});consttitle=label.properties.title;constfieldsLength=label.fields.length;console.log(`Fetchedlabelwithtitle:'${title}'and${fieldsLength}fields.`);}catch(err){// TODO (developer) - Handle exceptionconsole.log('Failedtogetlabelwitherror%s',err.message);}}

List labels for a Drive item

The following code sample shows how to get a Drive item and list all labels applied to that item.

advanced/driveLabels.gs
/** * List Labels on a Drive Item * Fetches a Drive Item and prints all applied values along with their to their * human-readable names. * * @param {string} fileId The Drive File ID */functionlistLabelsOnDriveItem(fileId){try{constappliedLabels=Drive.Files.listLabels(fileId);console.log('%dlabel(s)areappliedtothisfile',appliedLabels.labels.length);appliedLabels.labels.forEach((appliedLabel)=>{// Resource name of the label at the applied revision.constlabelName='labels/'+appliedLabel.id+'@'+appliedLabel.revisionId;console.log('FetchingLabel:%s',labelName);constlabel=DriveLabels.Labels.get(labelName,{view:'LABEL_VIEW_FULL'});console.log('LabelTitle:%s',label.properties.title);Object.keys(appliedLabel.fields).forEach((fieldId)=>{constfieldValue=appliedLabel.fields[fieldId];constfield=label.fields.find((f)=>f.id==fieldId);console.log(`FieldID:${field.id},DisplayName:${field.properties.displayName}`);switch(fieldValue.valueType){case'text':console.log('Text:%s',fieldValue.text[0]);break;case'integer':console.log('Integer:%d',fieldValue.integer[0]);break;case'dateString':console.log('Date:%s',fieldValue.dateString[0]);break;case'user':constuser=fieldValue.user.map((user)=>{return`${user.emailAddress}:${user.displayName}`;}).join(',');console.log(`User:${user}`);break;case'selection':constchoices=fieldValue.selection.map((choiceId)=>{returnfield.selectionOptions.choices.find((choice)=>choice.id===choiceId);});constselection=choices.map((choice)=>{return`${choice.id}:${choice.properties.displayName}`;}).join(',');console.log(`Selection:${selection}`);break;default:console.log('Unknown:%s',fieldValue.valueType);console.log(fieldValue.value);}});});}catch(err){// TODO (developer) - Handle exceptionconsole.log('Failedwitherror%s',err.message);}}