【问题标题】:Google picker method "setSelectableMimeTypes is not a function" error in Google App ScriptGoogle 应用程序脚本中的 Google 选择器方法“setSelectableMimeTypes 不是函数”错误
【发布时间】:2017-08-07 16:58:10
【问题描述】:

我正在尝试在 Google 应用脚本中使用 google picker API,以允许用户选择要上传文档的文件夹。我正在使用以下代码

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 不是函数”

【问题讨论】:

    标签: google-apps-script google-picker


    【解决方案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);
    

    【讨论】:

    • 驱动器选择器不允许创建文件夹...解决方法是在使用选择器之前创建文件夹,使用DriveApp.createFolder("&lt;&lt;Input from user&gt;&gt;").getId()。然后你可以将 id 传递给选择器
    • 当我尝试使用代码“在选择器视图中仅显示文件夹”时,出现以下错误“未捕获的 TypeError:this.Jf 不是函数”。也有兴趣知道是否有任何方法可以创建文件夹,然后使用这些 API 选择相同的 @Ritz
    • 我可以显示文件夹....可能是配置问题...click here了解有关配置的更多详细信息
    • 我在使用代码时也显示了文件夹,但是当我尝试选择文件夹时出现上述错误。当我使用DocsView().setMimeTypes('application/vnd.google-apps.folder') 而不是DocsView(google.picker.ViewId.FOLDERS) 时,它起作用了。 @里兹
    猜你喜欢
    • 2019-04-28
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多