繁体   English   中英

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

[英]Access google drive file content from JavaScript

我有

我有一个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 ,我得到了用户选择的对象属性列表。

在此输入图像描述

  1. 我看到driveError :“ERROR”和driveSuccess :false
  2. 在我无法使用gapi下载该文件之后

我的尝试是这样的:

        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云端硬盘用户文件所选内容?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM