Невозможно использовать Google Drive API после gapi.client.load - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь получить доступ к Google Drive в приложении Cordova. Для аутентификации я использую cordova-plugin-googleplus, который дает мне авторизационный токен и инициализированный объект gapi.

Я попробовал следующие шаги:

  1. Загрузить клиентскую библиотеку, 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: Почему? Должен вернуть хоть какую-то ошибку. Есть ли способ отладки подобных сценариев?

Вопрос3: Поскольку я хочу сделать это в приложении Cordova, я не хочу использовать ключ API. Есть ли лучший способ или плагин, чтобы сделать это. Так что, это будет работать в Android и веб-приложения.

...