2011-01-31 15 views
5

La funzione FB.getLoginStatus non funziona per me per qualche motivo, sebbene fosse utilizzata per un po 'di tempo. Il codice molto di seguito, e l'avviso non compare mai: assomiglia a FB.getLoginStatus non chiama mai la funzione fornita. Qualche idea?FB.getLoginStatus non funziona?

<body> 
<form id="form1" runat="server"> 
<div id="fb-root"> 
</div> 
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
    FB.init({ appId: 'xxx', status: true, cookie: true, xfbml: true }); 
    FB.getLoginStatus(function (response) { 
     alert("Hi there"); 
    }); 
</script> 
</form> 

risposta

0

In quale piattaforma si sta sviluppando l'applicazione ?? Se è FBML poi controllare FBJS-Facebook JavaScript .Io penso avviso non funzionerà in applicazione FBML. ho ottenuto questo working..Just controllare

<div id="fb-root"></div> 
<script type="text/javascript"> 
window.fbAsyncInit = function() { 
    FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: false}); 
}; 
(function() { 
    var e = document.createElement('script'); 
    e.type = 'text/javascript'; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
}()); 
window.fbAsyncInit = function() { 
    FB.init({appId: 'APP_ID', status: true, cookie: true, xfbml: true}); 

     /* All the events registered */ 
     FB.Event.subscribe('auth.login', function(response) { 
      // do something with response 
      login(); 
     }); 
     FB.Event.subscribe('auth.logout', function(response) { 
      // do something with response 
      logout(); 
     }); 

     FB.getLoginStatus(function(response) { 
      if (response.session) { 
       // logged in and connected user, someone you know 
       login(); 
      } 
     }); 
    }; 

6

Se la vostra applicazione è in modalità Sandbox vedere questo bug: https://developers.facebook.com/bugs/240058389381072

anche leggere i commenti di Philip Bulley

[ ...] Essenzialmente le applicazioni in modalità sandbox sono invisibili agli sviluppatori non app. Se non c'è nessun utente attualmente connesso a Facebook, Facebook si comporterà come se l'applicazione sandbox non esistesse affatto (FB ovviamente non sa che sei uno sviluppatore di app, e quindi l'app è invisibile!).

Questo bug è stato confermato e assegnato.

+0

Oh Dio, grazie per aver spiegato questo. Mi sto strappando i capelli per ore cercando di capire quale fosse il problema. Spento la modalità Sandbox e ora FB.getLoginStatus funziona correttamente. (Che chiama in causa il valore della modalità Sandbox ... ma vabbè) Grazie! –