我需要知道如何正确使用文件搜索方法参数,以便在 Drive API 中遍历文件夹树。
使用 Javascript,我浏览了 Quickstart ,在 Google Dev Console 中设置应用程序和启用 API,已获得授权,并且可以使用 gapi.client.drive.files.list()
方法读取根目录下的文件名,但我卡住了在运行Files Search时调用以导航到特定目录。
我正在尝试这个的变体:
GET https://www.googleapis.com/drive/v2/files?q='0B36wII03Fph8aFhtTFN5SVRYR0U'+in+parents&key={CLIENT_ID}
...但我对如何调用 GET 请求感到困惑。我以前从未直接从 JS/HTML 使用过 REST 调用,所以我可能会错过一些基本的东西...但是,是的,我真的不知道如何在我的代码中使用它...
我尝试使用 Files:List 上的查询参数页面,仅使用 fileID 作为参数,但我不断收到 400 响应:
400 OK
- SHOW HEADERS -
{
"error": {
"errors": [
{
"domain": "global",
"reason": "invalid",
"message": "Invalid Value",
"locationType": "parameter",
"location": "q"
}
],
"code": 400,
"message": "Invalid Value"
}
}
我确信这很简单,但纯粹的 Http Rest 东西不是我的强项...感谢您的任何线索!
最佳答案
为您的 q
参数尝试不同的编码。
而不是
q='0B36wII03Fph8aFhtTFN5SVRYR0U'+in+parents
使用这个:
q=%270B36wII03Fph8aFhtTFN5SVRYR0U%27%20in%20parents
哦,更新到 API 的 v3。
虽然使用 v3 API,但在调用此 URL 时我看到了完全相同的问题:
https://www.googleapis.com/drive/v3/files?orderBy=name&q=name+contains+'search+term'+AND+mimeType+contains+'application%2Fvnd.google-apps.folder'&key={YOUR_API_KEY}
奇怪的是,当您使用 Google APIs Explorer 时,完全相同的 URL 被记录为有效。 .
作为最后的手段,我尝试了对请求参数进行不同的编码,然后 API 就起作用了。
这是我有效的替代调用:
https://www.googleapis.com/drive/v3/files?orderBy=name&q=name%20contains%20%27search%20term%27%20AND%20mimeType%20contains%20%27application%2Fvnd.google-apps.folder%27&key={YOUR_API_KEY}
这与 Google 云端硬盘文档相反,但效果很好。
关于javascript - 使用 Google Drive API 导航到文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35447777/