Google 驱动器 API v3 未列出 file/folder 的指定元数据

Google Drive API v3 doesn't list specified metadata of file/folder

您好,我在尝试使用 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)'

感谢您的回复。

如果您使用 Files#list 端点,那么检索文件 ID、名称、大小和父 ID 的正确 "fields" 规范确实是 "fields": "files(id,name,size,parents)",因为响应Files#list 是:

{
  "kind": "drive#fileList",
  "nextPageToken": string,
  "incompleteSearch": boolean,
  "files": [
   files Resource
  ]
}

例如有一条路通往 response -> files -> your-metadata-fields

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

{
  "kind": "drive#file",
  "id": string,
  "name": string,
  "mimeType": string,
  "description": string,
  "starred": boolean,
  "trashed": boolean,
  ...
}

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

如果没有此 "files" 前缀,并且使用 ,您的通用请求如下所示:

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

编辑:如@pinoyyid 所示,请求未正确设置 "fields" 查询参数。

您错误地构造了 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