2014-01-16 18 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