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)
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"
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 :)