1

我正在构建一个 web 应用程序,用户可以在其中通过 OAuth2 进行授权并从他们自己的驱动器中选择/上传文件以供以后使用。本质上,我们只是存储文件 ID 并使用 API 稍后访问它们。当我使用 .setAuthUser() 并要求用户独立于我们的应用程序登录时,一切正常,但是当我们使用 .setOAuthToken() 时,只有文件选择器工作 - DocsUploadView 面板返回“未定义”错误。

这种行为在 Firefox/Chrome/Safari 中是一致的,无论是否有当前用户登录。它总是能够看到文件,永远无法上传它们。我们正在请求完整的驱动器范围,但即使这样我们也看到了错误。

目前我们只是使用 setAuthUser 作为一种解决方法,但这会在用户未登录时导致额外的步骤和一些问题。是否可以将 setOAuthToken 与 DocsUploadView 一起使用?

我正在使用的选择器构建器代码如下所示,ID 和令牌的格式与我使用的相同,但为了安全而进行了更改。

谢谢!

var view = new google.picker.View(google.picker.ViewId.DOCS);
var uploadview = new google.picker.DocsUploadView();  
var picker = new google.picker.PickerBuilder()
     .enableFeature(google.picker.Feature.MINE_ONLY)
     .disableFeature(google.picker.Feature.NAV_HIDDEN)
     .disableFeature(google.picker.Feature.MULTISELECT_ENABLED)
     .setAppId('987654321098')
     .setOAuthToken('ya31.AIER6DRhxRgRsT0SoGPoaxPMhDd0n3OHKj43SJaG5kFndZ52')
     .addView(uploadview)
     .addView(view)
     .setCallback(pickerCallback)
     .build();
picker.setVisible(true);

[交叉发布于:https ://groups.google.com/d/topic/google-picker-api/p9whgDscUrQ/discussion ]

4

2 回答 2

2

Picker API 目前不支持使用 OAuth 令牌上传。我提交了一个内部功能请求以实现此功能,但目前您应该继续依赖您的解决方法。

于 2013-01-12T00:08:31.610 回答
0

这甚至听起来很愚蠢,但是链接中的执行顺序呢?

.addView(uploadview)
.addView(view)

变成

.addView(view)
.addView(uploadview)

我在这里可能建议的另一件事是在选择器上启用 multi_select

enableFeature(google.picker.Feature.NAV_HIDDEN)
enableFeature(google.picker.Feature.MULTISELECT_ENABLED)

,只是为了测试是否存在依赖于这些功能中的任何一个的错误。

于 2013-01-11T21:27:11.573 回答