1

Я использую ember-simple-auth и ember-cli-facebook-js-sdk.Я использую ember-cli-facebook-sdk, потому что хочу получить пользователя фото в любое время, так как facebook дает только доступ, который истекает через 60 минут. Так что я не могу сэкономить. Эмбер-cli-facebook-sdk работает отлично. Но иногда я получаю сообщение об ошибке в своей сетевой консоли.Идентификатор доступа fb всегда истек в приложении ember

{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException"} 

Я не могу думать, почему эта ошибка coming.I есть инициализатор, которые имеют facebook ID и апи version.And Теперь я использую Fb.api и другие в моем контроллере, компонентным и other.But он иногда терпит неудачу. Пожалуйста, объясните, где я иду не так. Спасибо заранее.

инициализатор/fb.js

import FB from 'ember-cli-facebook-js-sdk/fb'; 

export default { 
    name: 'fb', 
    initialize: function() { 
    return FB.init({ 
     appId: '1234567', 
     version: 'v2.3', 
     xfbml: true 
    }); 
    } 
}; 

controller.js

usrphoto:Ember.computed('model',function(){ 
      var currentState = this; 
      FB.api('/me/picture','Get',{'type':'large'}).then(function(response) { 
      currentState.set('usrphoto', response.data.url) 
      }) 
     } 
+0

Показать работу. – Hillboy

+0

@Hillboy Я отредактировал код. – 800i

ответ

0

я думаю, что здесь происходит, что ваш Facebook сессия истекает. В этом случае вам необходимо обработать ошибку и управлять ею. Например, вы могли бы проверить на правильность сессии и в случае сеанс истек, требуется новый маркер, а затем сделать Ваш запрос:

FB.getLoginStatus().then(function(response) { 
    if (response.status === 'connected') { 
    return Ember.RSVP.resolve(); 
    } else { 
    return FB.login('email,user_photos'); //set your scope as needed here 
    } 
}).then(function() { 
    return FB.api('/me/picture','Get',{'type':'large'}); 
}).then(function(response) { 
    currentState.set('usrphoto', response.data.url); 
}); 

Другой возможность заключается в том, чтобы обработать ошибку в улове FB.api :

FB.api('/me/picture','Get',{'type':'large'}).then(function(response) { 
    currentStatte.set('userphoto', response.data.url); 
}).catch(function(reason) { 
    ...handle your error here... 
}); 
+0

, но для входа я использую ember-simple-auth addon – 800i

+0

Когда я проверяю loginStatus и если он терпит неудачу и возвращает fb.login.Will откроет новое диалоговое окно для разрешения fb – 800i

+0

@MarutiNandan, если пользователь уже принял приложение разрешения, то диалог не появится (ну, на самом деле, он будет быстро открываться и закрываться) – matteo

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

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