Google Drive Picker - select folders to upload

2019-09-14 17:26发布

I have my picker code as follows:

var mimetypes = "application/vnd.ms-excel," +
                        "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet," +
                        "application/vnd.google-apps.spreadsheet," +
                        "application/vnd.ms-powerpoint," +
                        "application/vnd.openxmlformats-officedocument.presentationml.presentation," +
                        "application/vnd.google-apps.presentation," +
                        "application/vnd.openxmlformats-officedocument.wordprocessingml.document," +
                        "application/msword," +
                        "application/vnd.google-apps.document," +
                        "application/pdf,"+
                        "application/vnd.google-apps.folder";
          var view = new google.picker.View(google.picker.ViewId.DOCS);
          view.setMimeTypes(mimetypes);

         var docsView = new google.picker.DocsView()
          .setIncludeFolders(true) 
          .setMimeTypes('application/vnd.google-apps.folder')
          .setSelectFolderEnabled(true);

       var folderView = new google.picker.View(google.picker.ViewId.FODLERS);
       folderView.setMimeTypes("application/vnd.google-apps.folder");

          var picker = new google.picker.PickerBuilder()
              .enableFeature(google.picker.Feature.MINE_ONLY)
              .enableFeature(google.picker.Feature.NAV_HIDDEN)
              .setAppId(appId)
              .setOAuthToken(oauthToken)
              .addView(view)
              .addView(docsView)
              .addView(folderView)
              .addView(new google.picker.DocsUploadView())
              .setSelectableMimeTypes(mimetypes)
              .setDeveloperKey(developerKey)
              .setCallback(pickerCallback)
              .build();
           picker.setVisible(true);

I have added the view to enable "setSelectFolderEnabled" but still after selecting the folder form Picker View, the "Select" button in the bottom remains disabled. I need the folder Id in callback for further processing. But I am unable to figure out how to enable the button even if a folder is selected.

Does Google Picker API only allow to select files saved in Google Drive ??

enter image description here

2条回答
我想做一个坏孩纸
2楼-- · 2019-09-14 18:03

Just changed my code to this and it works :

 var docsView = new google.picker.DocsView().
                                 setIncludeFolders(true).
                                 setSelectFolderEnabled(true);
          var picker = new google.picker.PickerBuilder()
              .enableFeature(google.picker.Feature.MINE_ONLY)
              .enableFeature(google.picker.Feature.NAV_HIDDEN)
              .setAppId(appId)
              .setOAuthToken(oauthToken)
              .setDeveloperKey(developerKey)
              .addView(docsView)
              .setCallback(pickerCallback)
              .build();
          picker.setVisible(true);
查看更多
Luminary・发光体
3楼-- · 2019-09-14 18:17

Try to add the google.picker.​ViewId.FOLDERS viewId in the addView. I think you can't select folders due to it not being set in the PickerView.Builder. More information about the View Descriptions can be found on the Showing Different Views of the Picker API documentation.

After that, determine if you have write scopes for you to upload files to Drive.

查看更多
登录 后发表回答