Я работаю над приложением Facebook, которое интегрировано с Facebook, и пытаюсь получить сеанс FB пользователя. Насколько я понимаю, наиболее распространенный сценарий использования выглядит следующим образом:
FB.init ()
FB.getLoginStatus
, давая ему соответствующий обратный вызов. Я запустил. следующий код (идентификатор приложения).
<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>
Если пользователь уже вошел в Facebook в том же сеансе браузера, тогда все работает, как ожидалось, - возвращается заполненный _response.authResponse_
. Однако, если пользователь не вошел в Facebook, обратный вызов вообще не запускается. Проверяя сетевой журнал браузеров, я вижу, что Facebook возвращает следующий ответ (запрос от http://www.facebook.com/dialog/oauth
?).
Ошибка приложения: возникла проблема с получением данные для запрошенного вами приложения. Приложение может быть недействительным, либо возник временный сбой. Пожалуйста, повторите попытку позже.
Я проверил это в Chrome и Firefox (Mac).
Обновление
Я хотел бы поблагодарить всех, кто ответил.
Комментарий Бена дал ответ.
Спасибо, Бен - ты избавил меня от разочарования.