如何使用文件夹ID访问文件

时间:2017-11-03 15:57:04

标签: google-drive-api

使用Googles Drive RESP API v3,很难确定如何访问文件夹中的文件。

我知道我可以使用REST API v2中的/children访问文件

GET https://www.googleapis.com/drive/v2/files/folderId/children

根据migration notes for REST API的v3

  

已删除重复和过时的功能。例子:

     
      
  • 已移除儿童及家长收藏品。请改用files.list。
  •   

我可以收集的内容children.list是您使用gapi.js时可以利用的功能

request = gapi.client.drive.children.list({
  'folderId' : folderId,
  'pageToken': nextPageToken
});

同样,在注释children.list后面应该替换files.list with ?q='parent_id'+in+parents

但这对REST API用户来说意味着什么呢?

GET https://www.googleapis.com/drive/v3/files?q={folderId}+in+parents
GET https://www.googleapis.com/drive/v3/files?q=parents(folderId)
GET https://www.googleapis.com/drive/v3/files?q=folderId

无论我尝试什么,我只是继续得到400错误 - q中的值无效。

参考文献:

2 个答案:

答案 0 :(得分:1)

这次修改怎么样?

我不知道我是否能理解你的问题。如果我误解了你的问题,我很抱歉。

我认为您使用的q='parent_id'+in+parents是正确的。这意味着检索parent_id中的文件列表。但是,当我看到您测试的端点和查询时,有一个修改点,我认为这可能是错误的原因。

来自:

GET https://www.googleapis.com/drive/v3/files?q={folderId}+in+parents

致:

GET https://www.googleapis.com/drive/v3/files?q='{folderId}'+in+parents

关于错误消息:

当我尝试在没有单引号的情况下运行它时,检索到以下错误。所以我认为这可能是原因。

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Value",
    "locationType": "parameter",
    "location": "q"
   }
  ],
  "code": 400,
  "message": "Invalid Value"
 }
}

参考:

如果您已使用{folderId}中的单引号,如果这对您没用,我很抱歉。

答案 1 :(得分:1)

格式为

  

https://content.googleapis.com/drive/v3/files?q=%270Bw3h_yCVtXbbQ2VEQkRNQ0J1YTg%27%20in%20parents

请注意文件夹ID周围的单引号(%27)。