https://github.com/google/google-api-javascript-client/issues/526
Я следовал этим инструкциям, чтобы начать использовать Google API в приложении angularjs:
https://developers.google.com/calendar/quickstart/js
А вот моя попытка:
Библиотека / init.js
function initClient() {
console.log('-- initClient');
var resp = gapi.client.init({
apiKey: '',
clientId: '',
discoveryDocs: [
"https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"
],
scope: [
'profile',
'https://www.googleapis.com/auth/calendar.readonly'
]
}).then(function() {
console.log('-- then') // never executes
// api loaded
}, function(error) {
console.log('ERROR: ' + error);
});
}
function handleClientLoad() {
console.log('-- handleClientLoad');
gapi.load('client:auth2', {
callback: function() {
initClient();
},
onerror: function() {
console.log('gapi failed to load!');
},
timeout: 5000, // 5 seconds.
ontimeout: function() {
// Handle timeout.
console.log('gapi.client could not load in a timely manner!');
}
});
}
index.html
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="lib/style.css">
</head>
<body ng-app="my-app">
<div ng-controller="MainCtrl">
<h3>Testing Google JS API Lib</h3>
</div>
<script type="text/javascript" src="lib/init.js"></script>
<script id="gapiscript" src="https://apis.google.com/js/platform.js?onload=handleClientLoad">
</script>
<script src="lib/script.js"></script>
</body>
</html>
gapi.client.load().then() {...}
не выполняется, и строка отладки console.log('-- then')
никогда не отображается. Делая document.getElementbyId('gapiscript')
я получаю:
<script id="gapiscript" src="https://apis.google.com/…?onload=handleClientLoad" gapi_processed="true">
console.log('-- handleClientLoad');
и console.log('-- initClient');
выполняются и отображаются в консоли. Я не получаю сообщение об ошибке от обратного вызова onerror.
Еще одно консольное сообщение, которое я получаю: CSI/start cb=gapi.loaded_0:613:127
Как мне заставить функцию then () выполнить запуск API?