gapi.client.load后无法使用Google Drive API

时间:2019-04-28 11:37:50

标签: cordova google-api google-drive-api cordova-plugins google-drive-android-api

我正在尝试在cordova应用程序中访问Google驱动器。为了进行身份验证,我使用的是cordova-plugin-googleplus,它为我提供了auth令牌和gapi对象的初始化。

我尝试了以下步骤:

  1. Load Client库gapi.load('client'callback);

  2. 此初始化驱动器API gapi.client.init(args);

window.plugins.googleplus.login({
        'scopes': 'https://www.googleapis.com/auth/drive',
        'offline': true},
            function (msg) {
                if(msg.accessToken) {
                    console.log("Logged In successfully" + JSON.stringify(msg));

                    var gapi = window.gapi;
                    gapi.load('client', {
                      callback: function() {
                        console.log("gapi.client2 " + inspect(gapi.client));
                        // Handle gapi.client initialization.
                        gapi.client.init({
                            apiKey : "<client secret>",
                            discoveryDocs:["https://www.googleapis.com/discovery/v1/apis/drive/v2/rest"],
                            clientId:"<client id>",
                            scope: "https://www.googleapis.com/auth/drive"
                        })
                        .then(function(response) {
                            console.log("Drive API Response SUCCESS : " + inspect(response));
                        });
                      }
                    });

                    self.setState({ isAuthorized: true, redirectURL: successRedirectURL });
                } else {
                    console.log("************ " + JSON.stringify(msg)); // do something useful instead of alerting
                    self.setState({ isAuthorized: false, redirectURL: errorRedirectURL });
                }
            },
            function (error) {
                console.log('error: ' + JSON.stringify(error));
            }
        );

在上面的代码中,我得到了无效的密钥。看来API密钥是错误的。

问题1:从哪里可以获取有效的API密钥?我是从Google控制台获得的。

如果我在上面的代码中删除了API密钥属性,则永远不会得到任何响应。

问题2:为什么?它应该至少返回一些错误。无论如何,有没有调试这种情况。

Question3:因为,我想在cordova应用程序中做到这一点,所以我不想使用API​​密钥。有没有更好的方法或插件来做到这一点。这样,它将可以在android和Web应用程序中工作。

0 个答案:

没有答案