从JavaScript访问谷歌驱动器文件内容

时间:2013-04-02 14:58:12

标签: javascript xmlhttprequest google-drive-api

我有

我有一个web / html5应用程序,我向用户提供了一个功能,可以显示经过身份验证的用户的Google云端硬盘内容文件并选择它们。

我成功使用google.picker UI界面,效果非常好。 示例:

   var view = new google.picker.View(google.picker.ViewId.DOCS);

    var picker = new google.picker.PickerBuilder()
      .enableFeature(google.picker.Feature.NAV_HIDDEN)
      .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
      .setAppId('MY_CLIENT_ID')       
      .addView(view)
      .setCallback(pickerCallback)
      .build();
    picker.setVisible(true);

问题

有一次用户从UI中选择了文件,调用了pickerCallback,我得到了用户选择的对象属性列表。

enter image description here

  1. 我看到driveError:“错误”和driveSuccess:false
  2. 我无法使用gapi
  3. 下载该文件

    我的尝试就像:

            gapi.client.setApiKey('MY_API_KEY');
            gapi.client.load('drive', 'v2', function () {
    
                var scopes = 'https://www.googleapis.com/auth/drive';
                gapi.auth.authorize({ client_id: "MY_CLIENT_ID", scope: scopes, immediate: true },
                function () {
    
                    //TOKEN IS ALWAYS NULL !! 
                    var myToken = gapi.auth.getToken();
                    gapi.client.request({
                        'path': '/drive/v2/files/' + file.id,
                        'method': 'GET',
                        callback: function (theResponseJS, theResponseTXT) {
    
                            var myXHR = new XMLHttpRequest();
                            myXHR.open('GET', theResponseJS.downloadUrl, true);   
                            myXHR.onreadystatechange = function (theProgressEvent) {
                                if (myXHR.readyState == 4) {
                                    if (myXHR.status == 200) {
                                        //200=OK
                                        console.log(myXHR.response);
                                    }
                                }
                            }
                            myXHR.send();
                        }
                    });
                }
    
                );
    
            });
    

    这与身份验证有关,imo,但根据Google本身的最新帖子,TOKEN管理已被弃用并实际删除。

    问题

    如何阅读Google云端硬盘用户文件所挑选的内容?

1 个答案:

答案 0 :(得分:1)

您是否使用API​​控制台中的实际值替换上面代码中的MY_APP_IDMY_API_KEYMY_CLIENT_ID占位符?