2

Two months ago, in Authorization of Google Drive using JavaScript,
@Nivco was writing about "Handling file content", a very tantalizing:

We could also improve the file content server so that it supports XHR requests.

So, where could "we" find news or roadmaps, information et coetera about this feature?



Actually, this question is a reply... (to another question)

Community
  • 1
  • 1
Pierre
  • 261
  • 3
  • 12

2 Answers2

5

Here is a short example using CORS.
The ID of the file is stored in variable <theID> ; this ID is unique and won't change as long as the file is not deleted (a trashed file is not deleted).

  • First gapi.client.request retrieves the downloadUrl property ; the returned value is a short lived value ;
  • Then, the callback: function sends an authenticated request in order to retrieve the contents of the file, thanks to its <downloadUrl> ;
  • And the winner is… returned via onreadystatechange = function( theProgressEvent ).

.

gapi.client.request({
    'path': '/drive/v2/files/'+theID,
    'method': 'GET',
    callback: function ( theResponseJS, theResponseTXT ) {
        var myToken = gapi.auth.getToken();
        var myXHR   = new XMLHttpRequest();
        myXHR.open('GET', theResponseJS.downloadUrl, true );
        myXHR.setRequestHeader('Authorization', 'Bearer ' + myToken.access_token );
        myXHR.onreadystatechange = function( theProgressEvent ) {
            if (myXHR.readyState == 4) {
//          1=connection ok, 2=Request received, 3=running, 4=terminated
                if ( myXHR.status == 200 ) {
//              200=OK
                    console.log( myXHR.response );
                }
            }
        }
        myXHR.send();
    }
});

tested with "Chrome 20.0.1132.57 m" and "Firefox 14.0.1"

Pierre
  • 261
  • 3
  • 12
2

The file download endpoint now supports CORS requests. I have updated the body of the answer to Authorization of Google Drive using JavaScript yesterday actually to make sure it reflects the latest state of the API. I just removed that trailing comment you are referring to :)

Community
  • 1
  • 1
Nicolas Garnier
  • 12,134
  • 2
  • 42
  • 39
  • Very efficient, as usual. However, may I ask for a small example using CORS in order to download a file, similar to the ones given as example for uploading? By the way, how might we set parameters to create+upload a file and link it to some folder(s), in only one request? – Pierre Jul 21 '12 at 11:50