2015-12-24 3 views
3

2 часа, пытаясь заставить это работать, и я не могу. Firebase полностью аутентифицирует пользователя, но тогда он ничего не может извлечь из API Google Plus. ошибка, вы получите:Не удается ударить Google plus api после oauth с Firebase

{ 
    domain: "global" 
    location: "Authorization" 
    locationType: "header" 
    message: "Invalid Credentials" 
    reason: "authError" 

} 

Код это:

Auth.$authWithOAuthPopup(provider, { 
     scope: ['profile', 'email'] 
    }).then(function(authData) { 

      console.log(authData.token); 
      gapi.client.setApiKey('<APIKEY>'); 
      gapi.client.load('plus','v1', function(){ 
      var request = gapi.client.plus.people.get({ 
       'userId': 'me' 
      }); 
      request.execute(function(resp) { 
       console.log('Retrieved profile for:' + resp.displayName); 
       debugger; 
      }); 
      }); 

    }, showError); 

Он должен иметь что-то делать с Firebase сделать звонок от нашего имени. Поскольку этот код, в котором мы выполняем нашу собственную аутентификацию, работает нормально: http://codepen.io/morgs32/pen/KVgzBw

Не забудьте установить clientId и apiKey в кодефене.

Если вы можете понять это, вы получите золото на Рождество.

ответ

3

Вы пытаетесь использовать authData.token для доступа к Google. Но authData.token - это токен JWT для доступа к Firebase.

Для доступа к Google вы должны использовать authData.google.accessToken.

Также см. Эту страницу в Firebase documentation on using the Google provider.

+0

Пригвожденный @Frank. Благодаря! – morgs32

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