Google Client API не может прочитать свойство people, хотя оно загружено

Я пытаюсь использовать Google Client API для доступа к некоторым данным пользователя для конкурса с Coffeescript.

До сих пор я успешно получил доступ к данным при первом входе в систему с помощью этого кода:

initSignIn= () ->
  gapi.load('client:auth2', initClient)

  # Init click function for sign in button
  $('#signin-button').on 'click', (e) ->
    gapi.auth2.getAuthInstance().signIn()
    return false
  return


initClient= () ->
  # Init the client API
  $.when(
    gapi.client.init({
      apiKey: 'AIzxxx',
      discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"],
      clientId: '31xxx.apps.googleusercontent.com',
      scope: 'profile https://www.googleapis.com/auth/youtube.readonly'
    })
  ).then(
    # Add listeners for sign in changes
    gapi.auth2.getAuthInstance().isSignedIn.listen( updateSigninStatus )
    updateSigninStatus( gapi.auth2.getAuthInstance().isSignedIn.get() )
  )
  return


 updateSigninStatus= (isSignedIn) ->
  # If the user is signed in then make the call for getting the user data
  if isSignedIn then makeApiCall()
  return


makeApiCall= () ->
  # Test logs
  console.log "gapi.client"
  console.log gapi.client
  console.log "gapi.client.people"
  console.log gapi.client.people

  # Getting the user data
  gapi.client.people.people.get({
    resourceName: 'people/me',
    'requestMask.includeField': 'person.names,person.email_addresses',
    requestMask: {
      includeField: 'person.names,person.email_addresses'
    }
  }).then(
    (response) ->
      apiCalled = false
      console.log(response);
      console.log('Hello, ' + response.result.names[0].givenName)

      return
    (reason) ->
      apiCalled = false
      console.log('Error: ' + reason.result.error.message)
      return
  )
  return

Когда я обновляю браузер, я иногда получаю данные. Но часто кажется, что свойство people не может быть загружено. Я распечатал объект client в консоли и сразу после него распечатал свойство people. Он показал мне объект client с объектом people, но в следующей строке он больше не мог читать объект people:

Консольные журналы вызова API

Я что-то здесь не так делаю? Я впервые использую клиентский API. Спасибо за вашу помощь!

0 ответов

Другие вопросы по тегам