2012-10-02 61 views
5

我正在测试Google Drive API。测试脚本通过HTTP GET来访问文件 - >列表API,但不知何故,我总是在项目中获得一个空列表。我的谷歌驱动器中有数百个文件,所以结果是意外的。 HTTP响应如下所示。访问Google Drive API返回空文件列表

{ 
    "kind": "drive#fileList", 
    "etag": "\"VEU5fga3uYlZRf0pG-N1kS4iWP4/Kxo5eGvPKynWfroe9v5L5T43-n0\"", 
    "selfLink": "https://www.googleapis.com/drive/v2/files?maxResults=5", 
    "items": [] 
    } 
+0

我的范围是https://www.googleapis.com/auth/drive。我也尝试使用https://docs.google.com/feeds范围和HTTP GET https://docs.google.com/feeds/default/private/full,但这也不起作用。 – kvzrock

+0

你能显示你的要求吗? –

+0

看起来像通过服务帐户访问谷歌驱动器api不同于通过服务帐户绑定到的用户访问谷歌驱动器。服务帐户获得了与用户的谷歌驱动器空间分离的自己的小世界。 – kvzrock

回答

1

为了让服务帐户访问我自己的谷歌Drive上的文件,我得给权限的服务帐户的电子邮件地址。一旦权限设置正确,该列表就会填充允许服务帐户访问的文件。

+0

您能否详细说明您如何授予服务帐户的权限?我使用服务帐户电子邮件地址([email protected])共享了我的文件和文件夹,但似乎不起作用。 – ifunk

+6

我发现我的问题。我将范围设置为“.../auth/drive.file”。将其更改为“.../auth/drive”解决了该问题。 – ifunk

+0

@ifunk我有同样的问题,你能解释一下你做了什么吗?提前致谢! – mongotop

1

这足以包括https://www.googleapis.com/auth/drive.readonly.metadata范围,列出文件

4

这通常意味着你已经与不给你权限查看这些文件的文件范围认证。

例如,范围https://www.googleapis.com/auth/drive.file仅提供对由应用程序创建或打开的文件的访问。您将无法访问在Google云端硬盘界面或其他应用中创建的文件。

如果你想访问所有的文件,你将不得不使用另一个范围。例如,https://www.googleapis.com/auth/drive会给你完整的允许范围来访问用户的所有文件

你可以找到有关可用范围here的信息。用它为您的应用选择合适的范围。

+1

这是正确的答案。 – Cheeso