2014-01-16 22 views
2

我使用谷歌驱动器的插件拾取器谷歌。 我的想法是只选择文件夹并获得其ID。选择文件夹与谷歌拾取器

目前不让我选择它们,现在只进入该目录。 我使用这个代码:

function MenuCtrl($scope, $location, appId) { 
    var onFilePicked = function (data) { 
     $scope.$apply(function() { 
      if (data.action == 'picked') { 
       var id = data.docs[0].id; 
       $location.path('/edit/' + id); 
      } 
     }); 
    }; 
    $scope.open = function() { 
     var view = new google.picker.View(google.picker.ViewId.FOLDERS); 
     view.setMimeTypes('application/vnd.google-apps.folder'); 

     var picker = new google.picker.PickerBuilder() 
      .setAppId(appId) 
      .addView(view) 
      .setCallback(angular.bind(this, onFilePicked)) 
      .build(); 
     picker.setVisible(true); 


    }; 
    $scope.create = function() { 
     this.editor.create(); 
    }; 
    $scope.save = function() { 
     this.editor.save(true); 
    } 
} 

我怎么能拿选择的文件夹里面没有了?

非常感谢您的提前和问候。

回答

0

我认为从2014年1月15日起,Picker要求设置OAuthtoken,即。你需要包含“setOAuthToken(oauthToken)”。在PickerBuilder

+0

嗨! 感谢您的回复。 它在servlet层中工作的oauth2验证。 现在我可以查看和选择文件,并获得其ID。 但我也需要选择/选择文件夹。 感谢和问候! – user2606850

+0

好的。 DocsView.setSelectFolderEnabled(boolean)from https://developers.google.com/picker/docs/reference – pinoyyid

15

我解决了这个问题,这是新代码:

$scope.open = function() { 

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


     var picker = new google.picker.PickerBuilder() 
      .addView(docsView) 
      .setCallback(callback) 
      .build(); 

     picker.setVisible(true); 
}); 

感谢您的帮助和问候!

+0

请注意,现在您还必须在选择器上为所有视图设置oAuth标记,方法是使用'setOAuthToken(oauthToken)'和' setDeveloperKey(developerKey)' – vishesh

+0

这适用于这里的选择器示例:https://developers.google.com/apps-script/guides/dialogs它包括getOAuthToken()以获取用户oauth中记录的资源。你仍然需要一个开发人员密钥,但不必管理oauth的东西。 – bobpaul