I am trying to use google picker API in Google app script, to allow the user to select the folder to which the document to be uploaded. I am using the following code
HTML FILE
function change_destination()
{
gapi.load('picker', {'callback': function(){pickerApiLoaded = true;}});
google.script.run.withSuccessHandler(createPicker).getOAuthToken();
}
function createPicker(token)
{
var docsView = new google.picker.DocsView().setSelectFolderEnabled(true).setParent('root');
var callback = function(data)
{
if (data.action == google.picker.Action.PICKED)
{
var doc = data.docs[0];
console.log("You picked " + doc.id);
}
};
var picker = new google.picker.PickerBuilder().setSize("650","470").setOAuthToken(token).addView(docsView).setOrigin('https://docs.google.com').setCallback(callback).build();
picker.setSelectableMimeTypes('application/vnd.google-apps.folder');
picker.setVisible(true);
}
<script type="text/javascript" src="https://apis.google.com/js/api.js"></script>
CODE.gs
function getOAuthToken()
{
return ScriptApp.getOAuthToken();
}
Am getting the following error "setSelectableMimeTypes is not a function"
You need to set the setSelectableMimeTypes
before the picker is build.
var picker = new google.picker.PickerBuilder()
.setSize("650","470")
.setSelectableMimeTypes('application/vnd.google-apps.folder') //not sure about this Mime type
.setOAuthToken(token)
.addView(docsView)
.setOrigin(google.script.host.origin)
.setCallback(callback)
.build()
picker.setVisible(true);
To display only folders in the picker view.
var docsView = new google.picker.DocsView(google.picker.ViewId.FOLDERS).setParent('root');
var picker = new google.picker.PickerBuilder()
.setSize("650","470")
.setOAuthToken(token)
.addView(docsView)
.setOrigin(google.script.host.origin)
.setCallback(callback)
.build()
picker.setVisible(true);