Google drive api Access Google Drive API返回空文件列表

Google drive api Access Google Drive API返回空文件列表,google-drive-api,Google Drive Api,我正在测试GoogleDriveAPI。测试脚本让HTTP访问文件->列表API,但不知何故,我总是在items中得到一个空列表。我的谷歌硬盘中有数百个文件,所以结果出乎意料。HTTP响应如下所示 { "kind": "drive#fileList", "etag": "\"VEU5fga3uYlZRf0pG-N1kS4iWP4/Kxo5eGvPKynWfroe9v5L5T43-n0\"", "selfLink": "https://www.googleap

我正在测试GoogleDriveAPI。测试脚本让HTTP访问文件->列表API,但不知何故,我总是在items中得到一个空列表。我的谷歌硬盘中有数百个文件,所以结果出乎意料。HTTP响应如下所示

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

要允许服务帐户访问我自己的Google驱动器中的文件,我必须授予服务帐户电子邮件地址的权限。一旦权限设置正确,列表中就会填充允许服务帐户访问的文件

包含
https://www.googleapis.com/auth/drive.readonly.metadata
scope to list files

这通常意味着您已使用未授予您查看这些文件权限的作用域进行了身份验证

例如,范围
https://www.googleapis.com/auth/drive.file
仅允许访问应用程序创建或打开的文件。您将无法访问在Google Drive界面或其他应用程序中创建的文件

如果要访问所有文件,必须使用另一个作用域<代码>https://www.googleapis.com/auth/drive,例如,为您提供访问用户所有文件的完整、许可范围


您可以找到有关可用作用域的信息。使用它为您的应用选择正确的范围。

我的范围是。我也尝试过使用scope和HTTP GET,但这也不起作用。看起来通过服务帐户访问google drive api与通过服务帐户绑定的用户访问google drive不同。服务帐户有自己的小世界,与用户的谷歌硬盘空间分开。你能详细说明你是如何授予服务帐户权限的吗?我与服务帐户电子邮件地址共享了我的文件和文件夹(xxxxxxxxxx@developer.gserviceaccount.com)但似乎不起作用。我发现了我的问题。我将作用域设置为“../auth/drive.file”。将其更改为“../auth/drive”修复了问题。@如果我有相同的问题,请您解释一下您到底做了什么?提前谢谢!这是我的关键:$client->setAssertionCredentials(新的Google_AssertionCredentials('xxxxxxxx@developer.gserviceaccount.com,数组('),文件_get_contents('path/to/key.p12');除了代码之外,我所做的就是使用getAccessToken()和setAccessToken()缓存访问令牌和setClientId()然后将客户端传递给Google_DriveService类。为什么他们的文档中没有明确说明这一点?这么多…小时…浪费了,谢谢。我已经用了一段时间了,但是文档在某个时候。