Pracuję nad aplikacją Facebooka, która jest zintegrowana z Facebookiem i próbuję uzyskać sesję FB użytkownika. O ile rozumiem, wspólny scenariusz użycia jest następujący.FB.getLoginStatus nie uruchamia się, jeśli użytkownik nie jest zalogowany na Facebooku
- wezwanie
FB.init()
- wezwanie
FB.getLoginStatus
nadając mu odpowiednią zwrotnego.
Uruchomiłem następujący kod (identyfikator aplikacji).
<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>
Jeżeli użytkownik jest już zalogowany do Facebooka w tej samej sesji przeglądarki, a następnie wszystko działa zgodnie z oczekiwaniami - powrót zaludnionych _response.authResponse_
. Jeśli jednak użytkownik nie jest zalogowany na Facebooku, wywołanie zwrotne nie jest w ogóle uruchamiane. Sprawdzając dziennik sieci przeglądarki, widzę, że Facebook zwraca następującą odpowiedź (żądanie od 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.
Sprawdziłem to w Chrome i Firefox (Mac).
Aktualizacja
Chciałbym podziękować wszystkim, którzy odpowiedzieli.
Ben - komentarz miał odpowiedź.
Dzięki Ben - oszczędziłeś mi wiele frustracji.
Czy Twoja aplikacja działa w trybie piaskownicy? Jeśli tak, wydaje się, że jest to błąd, który może spowodować to: http://bugs.developers.facebook.net/show_bug.cgi?id=19359 –
Czy używasz channelUrl jako sprzężenia zwrotnego, czy jest to tylko dla próbki? Nie wierzę, że sprzężenie zwrotne będzie działać dla tej funkcji. –
użycie channelUrl zostało wyjaśnione [tutaj] (https://developers.facebook.com/docs/reference/javascript/FB.init/). najwyraźniej powinno to przyspieszyć czas ładowania i pomóc uniknąć kilku problemów. nie obchodzi mnie, czy coś robi, gdy się rozwijam, powinien pomóc, gdybym poszedł na żywo. –