Ivan
Ivan

Reputation: 131

Google drive api Files: get doesn't list full metadata

I tried using the example get method on the google drive api documentation, however what is returned is not the full metadata of the file, only this:

  "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"
  }
}

What should appear is something with many more fields:

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

I get the full response when I use the "try api" screen on the api docs, but not when calling it from 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))
    });
  }

I used the https://www.googleapis.com/auth/drive.file scope, which is listed as a scope sufficient for the request to be completed. Help!

Upvotes: 0

Views: 565

Answers (1)

Tanaike
Tanaike

Reputation: 201378

How about this modification?

At Drive API V3, when fields property is not used, a part of fields is returned. So in your case, for example, you can retrieve other parameters using fields: "*". When your script is modified, please modify as follows.

From:

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

To:

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

Reference:

Upvotes: 4

Related Questions