Метод средства выбора Google setSelectableMimeTypes не является ошибкой функции в скрипте приложения Google

Я пытаюсь использовать API средства выбора Google в скрипте приложения Google, чтобы пользователь мог выбрать папку, в которую должен быть загружен документ. Я использую следующий код

ФАЙЛ HTML

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();
}

Получаю следующую ошибку: "setSelectableMimeTypes не является функцией"


person Adharsha Neel    schedule 07.08.2017    source источник


Ответы (1)


Перед сборкой сборщика необходимо установить setSelectableMimeTypes.

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);

Для отображения только папок в окне выбора.

 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);
person Ritz    schedule 07.08.2017
comment
Средство выбора диска не позволяет создать папку ... решение - создать папку до использования средства выбора, используя DriveApp.createFolder("<<Input from user>>").getId(). Затем вы можете передать идентификатор сборщику - person Ritz; 07.08.2017
comment
Я получаю следующую ошибку Uncaught TypeError: this.Jf не является функцией, когда я пытаюсь использовать код «Отображать только папки в окне выбора». Также мне интересно узнать, есть ли какой-либо метод для создания папки, а затем выбрать то же самое с помощью этих API @Ritz - person Adharsha Neel; 07.08.2017
comment
Я могу отображать папки ... возможно, проблема с конфигурацией ... нажмите здесь, чтобы получить дополнительные сведения о конфигурации. - person Ritz; 07.08.2017
comment
Я тоже получил папки, отображаемые, когда я использовал код, но получил вышеупомянутую ошибку, когда я попытался выбрать папку. Когда я использовал DocsView().setMimeTypes('application/vnd.google-apps.folder') вместо DocsView(google.picker.ViewId.FOLDERS), это сработало. @Ritz - person Adharsha Neel; 07.08.2017