admin管理员组

文章数量:1417104

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)

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)

Share Improve this question edited May 23, 2017 at 11:48 CommunityBot 11 silver badge asked Jul 20, 2012 at 11:33 PierrePierre 2633 silver badges14 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 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"

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 ment you are referring to :)

本文标签: Google Drive using JavaScript Handling file contentStack Overflow