2017-02-07 6 views
3

Я пытаюсь использовать Google Calendar API для получения информации о конкретном календаре. Я продолжаю получать эту ошибку Cannot read property 'signIn' of null. Я использую пример здесь https://developers.google.com/google-apps/calendar/quickstart/js.Google Calendar API получает 'Can not read property' signIn 'of null'

Любая идея, почему это происходит? И может ли кто-нибудь дать мне более простой способ получить календарные данные? В основном, я хочу знать, какие комнаты в моем календаре можно бесплатно забронировать. Могу ли я это сделать с помощью API календаря?

const CLIENT_ID = '418414126140-u5u3r2ampke8egh7d2tk50ferkl8ri26.apps.googleusercontent.com'; 
const SCOPES = ["https://www.googleapis.com/auth/calendar.readonly"]; 

app.factory('getCalendar', ['$q', function($q){ 
    return function checkAuth() { 
     var deferred = $q.defer(); 

     function handleClientLoad() { 
      gapi.load('client:auth2', initClient); 
     } 
     handleClientLoad(); 

     function initClient() { 
      gapi.client.init({ 
       "client_id": CLIENT_ID, 
       "scope": SCOPES 
      }).then(function() { 
       gapi.auth2.getAuthInstance().signIn(); 
      }); 
     } 

     function updateSigninStatus(isSignedIn) { 
      if (isSignedIn) { 
       console.log("You are authorized"); 
       listUpcomingEvents(); 
      } else { 
       console.log("You are not authorized"); 
      } 
     } 

     function listUpcomingEvents() { 
      gapi.client.calendar.events.list({ 
       'calendarId': 'primary', 
       'timeMin': (new Date()).toISOString(), 
       'showDeleted': false, 
       'singleEvents': true, 
       'maxResults': 10, 
       'orderBy': 'startTime' 
      }).then(function(response) { 
       console.log(response); 
       deferred.resolve(response); 

      }); 
     } 
     return deferred.promise; 

    } //return ends here 

}]); 

ответ

-1

Попробуйте использовать gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); вместо gapi.auth2.getAuthInstance().signIn();. Вы можете обратиться к этому образцу code о том, как использовать библиотеку API клиента JavaScript JavaScript для аутентификации и взаимодействия с API.

Также проверьте это related SO thread и посмотрите, поможет ли он.

UPDATE:

Любая идея о том, чтобы проверить, какие номера в календаре доступны или нет?

Вы можете проверить по этой ссылке: Google Calendar Api, Is meeting Room available?

Вам нужно будет пройти проверку подлинности, как пользователь, который для чтения доступ к комнате. Затем вы можете взять поле resourceEmail в API ресурсов календаря и использовать его как calendarId в вызове API календаря events.list().

+0

Спасибо. Я нашел этот учебник онлайн, который намного проще в использовании по сравнению с документацией Google. https://www.youtube.com/watch?v=0rZmp3Ew_kA Любая идея о том, как проверить, какие номера в вашем календаре доступны или нет? –

 Смежные вопросы

  • Нет связанных вопросов^_^