2014-11-03 9 views
9

Próbuję wyprowadzić mój kanał Facebooka do elementu div.Aktywny token dostępu musi być użyty do zapytania informacji o bieżącym użytkowniku

Stosując ten kod:

<script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'APP ID HERE', 
      xfbml  : true, 
      version : 'v2.1' 
     }); 

     FB.getLoginStatus(function(response) { 
      if (response.status === 'connected') { 
      console.log('Logged in.'); 
      } 
      else { 
      console.log('initiate FB login...'); 
      FB.login(); 
      } 
     }); 


     FB.api('/me/feed',function(response){ 
      var idDiv=document.getElementById('result'); 
      idDiv.textContent=JSON.stringify(response); 
     }); 


     }; 

     (function(d, s, id){ 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) {return;} 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/sdk.js"; 
     console.log(js.length); 
     fjs.parentNode.insertBefore(js, fjs); 
     }(document, 'script', 'facebook-jssdk')); 


    </script> 
<div id='result'></div> 

otrzymuję „zalogowany” wyświetlane na konsoli, więc wiem, że FB.getLoginStatus() powrócił connected.

Element div zostanie wypełniona z powodu następującego błędu:

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

Jeśli FB.getLoginStatus() powrócił connected, nie powinno tam być aktywnym token dostępu?

Odpowiedz

11

Prawdopodobnie nie masz tokena dostępu w momencie wysłania żądania "mnie/kanału".

getLoginStatus sprawdza nie tylko, czy użytkownik jest uprawniony, ale także odświeża sesję użytkownika. dlatego ważne jest wykonywanie wywołań api po "podłączeniu".

Spróbuj przekierować wywołanie FB.api do getLoginStatus.

To pytanie jest podobny do problemu jesteś mającą: Facebook javascript sdk An active access token must be used to query information about the current user

+1

trochę więcej informacji, jeśli chcesz dodać go do odpowiedzi: getLoginStatus nie tylko sprawdzić, czy użytkownik jest uprawniony, ale także odświeża użytkownikowi sesja. dlatego ważne jest wykonywanie wywołań api po "podłączeniu". – luschn

+0

Pewnie, dziękuję za wyjaśnienia. – jvanstry

+0

Dzięki, przyjacielu. Mi to pasuje. –

Powiązane problemy