Начало работы функции Google API then () в приложении AngularJS - PullRequest
0 голосов
/ 18 мая 2019

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?

...