Sto lavorando a un'applicazione Facebook che è integrata con Facebook e sto cercando di ottenere la sessione FB dell'utente. Per quanto ho capito, uno scenario di utilizzo comune è il seguente.FB.getLoginStatus non si attiva se l'utente non ha effettuato l'accesso a Facebook
- chiamata
FB.init()
- chiamata
FB.getLoginStatus
dandogli un callback appropriata.
Ho eseguito il seguente codice (l'ID dell'applicazione).
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
<!--
function init(){
FB.init({
appId : '9999999999999',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
channelUrl : 'http://127.0.0.1:8888/channel.html', // custom channel
oauth : true // enable OAuth
});
alert('going to call FB.getLoginStatus ');
FB.getLoginStatus(function(response) {
alert('whoo hoo!!! getLoginStatus called the callback');
});
}
init();
//-->
</script>
Se l'utente è già connesso a facebook nella stessa sessione del browser allora tutto funziona come previsto - la restituzione del popolato _response.authResponse_
. Tuttavia, se l'utente non ha effettuato l'accesso a Facebook, la richiamata non viene attivata. Controllando il registro di rete del browser, vedo che Facebook restituisce la risposta seguente (richiesta da http://www.facebook.com/dialog/oauth
?).
Application Error: There was a problem getting data for the application you requested. The application may not be valid, or there may be a temporary glitch. Please try again later.
ho controllato questo su Chrome e Firefox (Mac).
Aggiornamento
Vorrei ringraziare tutti coloro che hanno risposto.
Il commento di Ben ha avuto la risposta.
Grazie Ben - mi hai salvato un sacco di frustrazione.
La tua app è in modalità Sandbox? Se è così sembra che ci sia un bug che potrebbe causare questo: http://bugs.developers.facebook.net/show_bug.cgi?id=19359 –
Stai usando channelUrl come loopback, o è solo per esempio? Non credo che loopback funzionerà per quella funzione. –
l'uso di channelUrl è spiegato [qui] (https://developers.facebook.com/docs/reference/javascript/FB.init/). a quanto pare dovrebbe velocizzare il tempo di caricamento e aiuta a evitare alcuni problemi. non mi interessa davvero se fa qualcosa mentre io sviluppo, dovrebbe aiutare quando vado dal vivo. –