Curl 如何通过Google Drive访问相同的文件列表';将API命名为Google';s的API浏览器?
使用GoogleDrive的API,我可以获得授权和令牌,但在尝试获取文件列表时,API当前只返回一项:名为“Getting Started”的PDF。这大概是刚刚建立的Google Drive中的默认项——一个早就从我们正在使用的Google Drive帐户中删除的项 同时,使用apiexplorer()返回数百个项目,事实上,这些项目代表了有关帐户的googledrive API Explorer表示它发送的请求是:Curl 如何通过Google Drive访问相同的文件列表';将API命名为Google';s的API浏览器?,curl,google-api,google-drive-api,service-accounts,Curl,Google Api,Google Drive Api,Service Accounts,使用GoogleDrive的API,我可以获得授权和令牌,但在尝试获取文件列表时,API当前只返回一项:名为“Getting Started”的PDF。这大概是刚刚建立的Google Drive中的默认项——一个早就从我们正在使用的Google Drive帐户中删除的项 同时,使用apiexplorer()返回数百个项目,事实上,这些项目代表了有关帐户的googledrive API Explorer表示它发送的请求是: GET https://www.googleapis.com/drive/
GET https://www.googleapis.com/drive/v3/files?corpus=user&pageSize=100&key={YOUR_API_KEY}
发送该消息会直接返回“权限不足”错误,这是有道理的:这是api_密钥,而不是access_令牌
使用&access\u token=
切换&key=
,确实会返回一个文件列表,但其中唯一的一项是上面提到的“入门”PDF
API和浏览器之间的差异给人的印象是
a) 每个帐户都引用不同的帐户,或者
b) API控制台()中授予的权限/范围/访问权限比资源管理器中的权限/范围/访问权限窄
关于a)每个引用不同账户:不太可能。这些凭证都是在API控制台中创建的,同时登录到用于运行API Explorer的同一个Google帐户
关于b)权限/范围/访问在某种程度上有所不同:可能性更大,但到目前为止还不清楚如何或如何调整以产生差异
已发送的cURL调用:
curl https://www.googleapis.com/drive/v3/files?corpus=user&pageSize=100&key={YOUR_API_KEY} (NG. Needs a token)
curl https://www.googleapis.com/drive/v3/files?corpus=user&pageSize=100&access_token={recently_obtained_token} (this works, but returns only one item -- the "Getting Started" PDF)
报税表:
{"kind": "drive#fileList", "incompleteSearch": false, "files": [{"kind": "drive#file", "id": "XXXX", "name": "Getting started", "mimeType": "application/pdf"}]}
此处列出了用于达到此目的的授权和令牌步骤。。。
按此帖()
使用的范围确实是https://www.googleapis.com/auth/drive
在同一链接下,一位kvzrock的回答建议给予“服务帐户的电子邮件地址权限”
关于这一点的几个链接:
但是还没有理解这些内容。听起来您使用了一个服务帐户,因此您使用的凭据以及您看到的一个文件属于服务帐户,而不是您的用户帐户。确认的一些方法:-
现在,为了解释为什么我说很难从GoogleAPIsExplorer获得准确的响应。无法与其他人共享您的根文件夹。如果您希望服务帐户具有完全访问权限和相同的响应,那么您必须与服务帐户共享根文件夹中的每个目录以及google drive帐户根目录中的每个文件。您添加的任何新文件或文件夹都必须与服务帐户共享。再次感谢。超级清晰。你说服了我:放弃服务帐户的方法。这完全取决于你在做什么,服务帐户有它们的用途。但是,如果您试图访问其他用户的数据,而不是您个人控制的驱动器帐户,那么使用服务帐户可能不是最好的主意。谢谢。我会调查的。