首页 > 解决方案 > Google drive api Files:获取未列出完整元数据

问题描述

我尝试使用google drive api文档上的示例get方法,但是返回的不是文件的完整元数据,只有这个:

  "kind": "drive#file",
  "id": "1vbLiXALYOYoVev1KD_ajVBfh5_CgvGgP",
  "name": "3.png",
  "mimeType": "image/png",
  "result": {
    "kind": "drive#file",
    "id": "1vbLiXALYOYoVev1KD_ajVBfh5_CgvGgP",
    "name": "3.png",
    "mimeType": "image/png"
  }
}

应该出现的是具有更多字段的内容:

{
 "kind": "drive#file",
 "id": "1vbLiXALYOYoVev1KD_ajVBfh5_CgvGgP",
 "etag": "\"MTU4Njg3NTU3MjUxOQ\"",
 "selfLink": "",
 "webContentLink": "",
 "alternateLink": "",
 "embedLink": "",
 "iconLink": "",
 "thumbnailLink": "",
 "title": "3.png"
// ... and so on

当我在 api 文档上使用“try api”屏幕时,我得到了完整的响应,但从 javascript 调用它时却没有:

function printFile(fileId) {
    appendPre(fileId)
    var request = gapi.client.drive.files.get({
      'fileId': fileId
    });
    request.execute(function(resp) {
        console.log(JSON.stringify(resp, null, 2))
    });
  }

我使用了https://www.googleapis.com/auth/drive.file范围,它被列为足以完成请求的范围。帮助!

标签: google-drive-api

解决方案


这个改装怎么样?

在 Drive API V3 中,fields不使用属性时,会返回部分字段。因此,在您的情况下,例如,您可以使用fields: "*". 当您的脚本被修改时,请进行如下修改。

从:

var request = gapi.client.drive.files.get({
  'fileId': fileId
});

至:

var request = gapi.client.drive.files.get({
  'fileId': fileId,
  'fields': "*"  // Added
});

参考:


推荐阅读