使用谷歌云端硬盘 API 导航到文件夹



我需要知道如何正确使用文件搜索方法参数,以便在驱动器 API 中遍历文件夹树。

使用 Javascript,我已经完成了快速入门,在 Google Dev 控制台中设置了应用程序和 API,获得了授权,并且可以使用 gapi.client.drive.files.list() 方法在根目录中读取文件名,但卡在运行文件搜索调用以导航到特定目录

时。

我正在尝试这个的变体:

GET https://www.googleapis.com/drive/v2/files?q='0B36wII03Fph8aFhtTFN5SVRYR0U'+in+parents&key={CLIENT_ID}

。但我对如何调用 GET 请求感到困惑。我以前从未直接从 JS/HTML 使用过 REST 调用,所以我可能只是缺少一些基本的东西......但是是的,我真的不知道如何在我的代码中使用它......

我尝试使用"文件:列表"页面上的查询参数,仅使用 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云端硬盘文档相反,但效果很好。

您是否尝试过文档工具? https://developers.google.com/drive/v3/reference/files/list

您使用的查询是正确的,只需更改版本,您使用的是 v2,我认为此参数适用于 v3。

当我放置"+"字符时,我也遇到了一些问题,我只是在工具中删除了它并且它起作用了,似乎它正在重新编码字符。

最新更新