Я пытаюсь получить доступ к Google Drive в приложении Cordova. Для аутентификации я использую cordova-plugin-googleplus, который дает мне авторизационный токен и инициализированный объект gapi.
Я попробовал следующие шаги:
Загрузить клиентскую библиотеку, gapi.load('client'callback)
;
После этого инициализировать 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 и веб-приложения.