Google Drive API v3未列出文件/文件夹的指定元数据

时间:2018-07-18 16:04:02

标签: javascript google-drive-api metadata google-api-js-client

您好,我在尝试使用Google Drive API v3和javascript检索指定的元数据字段时遇到麻烦。

我为此使用通用的API请求:

gapi.client.request({
          'path': 'https://www.googleapis.com/drive/v3/files/'+fileId,
          'fields': "files(id, name, size, parents)",
          'method': 'GET'
        })

但响应仅列出

    "kind": "drive#file",
    "id": "0B99ZF.........Z",
    "name": "...",
    "mimeType": "..."

如何列出请求中指定的元数据:

'fields': 'files(id, name, size, parents)'

谢谢您的回复。

2 个答案:

答案 0 :(得分:2)

如果您使用的是Files#list端点,则用于检索fileId,名称,大小和父ID的正确"fields"规范确实为"fields": "files(id,name,size,parents)",因为对{的响应{1}}是:

  

{
    “ kind”:“ drive#fileList”,
    “ nextPageToken”:字符串,
    “ incompleteSearch”:布尔值,
    “文件”:[
      files Resource
    ]
  }

例如有一条走Files#list

的路

但是,对于Files#get,响应直接是元数据-不包装在任何分页标记中:

  

{
    “ kind”:“ drive#file”,
    “ id”:字符串,
    “名称”:字符串,
    “ mimeType”:字符串,
    “ description”:字符串,
    “已加星标”:布尔值,
    “ trashed”:布尔值,
    ...
  }

因此,字段路径前缀response -> files -> your-metadata-fields导致字段说明无效,因为路径为files

没有此“文件”前缀,并且您的corrected request construction的通用请求如下:

response -> your-metadata-fields

编辑:如@pinoyyid所示,该请求未正确设置“字段”查询参数。

答案 1 :(得分:2)

您已错误地将参数对象构造为gapi.client.request。试试...

gapi.client.request({
          'path': 'https://www.googleapis.com/drive/v3/files/'+fileId,
          'params' : {'fields': "*"},
          'method': 'GET' 
        })

或仅将&fields=*添加到您的URL。参见https://developers.google.com/api-client-library/javascript/reference/referencedocs#gapiclientrequest