Google drive api DocsUploadView和setOAuthToken导致;未定义的解雇“;错误

Google drive api DocsUploadView和setOAuthToken导致;未定义的解雇“;错误,google-drive-api,picker,Google Drive Api,Picker,我正在构建一个webapp,用户可以通过OAuth2进行授权,并从自己的驱动器中选择/上传文件供以后使用。本质上,我们只是存储文件ID并在以后使用API访问它们。当我使用.setAuthUser()并要求用户独立于我们的应用程序登录时,一切正常,但当我们使用.setOAuthToken()时,只有文件选择器工作-DocsUploadView面板返回“未定义”错误 在Firefox/Chrome/Safari中,无论是否有当前用户登录,此行为都是一致的。它总是能够看到文件,却永远无法上传它们。我们

我正在构建一个webapp,用户可以通过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);

[交叉发布于:][/p>这听起来很愚蠢,但是链中的执行顺序呢

.addView(uploadview)
.addView(view)
变成

.addView(view)
.addView(uploadview)
我在此建议的另一件事是在选择器上启用multi_select

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

,只是为了测试这两个特性之间是否存在依赖性缺陷。

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

被问及关于Picker group post中的ID格式。我用API访问页面上列出的完整的.apps.googleusercontent.com客户端ID和驱动器SDK页面上作为应用程序ID列出的数字尝试了这个方法。两种格式的结果相同。现有文件列表很好,上传失败,出现“未定义”错误。听起来一点也不愚蠢。我一直在尝试我能做的一切——很多像这样的事情。只是浏览了很多,所有这些,每个组合,每个单独的-但没有运气。每一个都做了你期望的改变,但是上传在每一个变化中都失败了。谢谢你的检查。我会密切关注变化-是否有公共的地方我可以遵循功能请求?我们会在我们的博客(googleappsdeveloper.blogspot.com)和Google+()上的Google Drive开发者社区中宣布变化和新功能,如果我不能使用oauth访问令牌进行上传,有没有办法让用户通过Picker将文件上传到应用程序拥有的普通google drive帐户,而不给用户应用程序帐户凭据?