通过选择器访问尚未启用云端硬盘的用户的文件

时间:2012-05-08 00:45:31

标签: picker google-drive-api

对于安装了我们的Chrome网上应用店应用但尚未启用驱动器的用户,我遇到了选择器api的问题。对于处于此状态的用户,可以使用files / insert api保存新文件,这会返回成功的响应,但这些文件不会显示在选择器中。一旦用户启用了驱动器,他们之前保存的所有文件都会开始显示在选择器中。

这种行为是否有意?如果是这样,确定用户是否启用了驱动器的最佳方法是什么,以便我们可以提示用户启用驱动器而不是让它看起来像我们没有保存他们的文档?

2 个答案:

答案 0 :(得分:1)

目前,只有当用户在Chrome网上商店中安装了您的云端硬盘应用程序时,选择器和API才会生效。

我们理解开发人员所涉及的痛苦,我们正在寻求放宽这一限制。

与此同时,有一种方法可以检查用户是否安装了云端硬盘应用,因为您需要OAuth 2.0访问令牌(因此您的用户需要完成OAuth流程并授权您访问他的驱动数据)。然后你可以简单地尝试读取一个伪造ID的文件(比如ID“000”或“abcdefghijklmnopqrstuvw”)。如果API返回错误"403: The authenticated user has not installed the app with client id {clientId}",这意味着他尚未安装应用程序并且您应隐藏云端硬盘功能,并可能向他显示“为了利用我们最新的Google云端硬盘集成/功能,我们建议您将我们的云端硬盘应用链接安装到Chrome网上应用店列表“。 如果用户安装了您的云端硬盘应用,则此请求会出现"404: File not found: {fileId}"错误。

答案 1 :(得分:1)

首先,奇怪的是,选择器没有显示未启用驱动器的用户的文件。

所以我刚用非驱动器帐户测试了选择器,一切都按预期运行...例如,您可以尝试使用Balsamiq Drive app https://chrome.google.com/webstore/detail/pplbmgaodhjmbklkgkgmlghaekcfhhkk他们正在使用Mockup中的选择器>打开...

安装完成后,您必须转到https://balsamiqgdrive.appspot.com

我首先创建了一个模型并保存了它。它出现在Docs中。然后我在Balsamiq尝试了选择器,我可以看到它。

相关问题