Facebook: пустой экран при входе в FB

внезапно я получаю странную вещь, происходящую в моем приложении при попытке войти в систему через facebook. Всплывающее диалоговое окно facebook connect покажет пустой экран после запроса сведений для входа в систему. Обычно я ожидал бы, что окно закроется, а затем сам сайт будет продолжаться, однако он, похоже, висел.

Я использую Javascript SDK on Localhost

вот код, который я использую (копирование непосредственно из документации facebook):

window.fbAsyncInit = function () {
    FB.init({ appId: fbAppId,
        status: false,
        cookie: true,
        xfbml: true
    });

};

(function (d) {
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) { return; }
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
} (document));



$(document).ready(function () {


    $("#fb_button_login").click(function () {


        FB.login(function (response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me', function (response) {
                    console.log('Good to see you, ' + response.name + '.');
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        });


    });

});

некоторые другие Примечания:

  • это, похоже, происходит во всех браузерах.
  • Я исследовал все другие сообщения и не могу найти решение, которое работает для меня
  • в консоли нет сообщений об ошибках
  • при разработке я использую отдельный идентификатор приложения FB, который я настроил специально для localhost с указанным портом, который я использую (работал нормально более 12 месяцев)
    • у меня нет режима песочницы включено

URL, который он, похоже, висит на здесь

Спасибо, ребята.

2 ответов


похоже на баг: https://developers.facebook.com/bugs/241915819261223?browse=search_4ff2ead131a032989098325

из комментариев в приведенной выше ссылке вы можете попробовать запустить приложение на порту 80 и избежать части порта в url


попробуйте следующий код

<html>
<body>
<div id="fb-root"></div>
<script type="text/javascript" src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js" ></script>
<script>

FB.init({appId: fbAppId, status: true, cookie: true, xfbml: true});
$(document).ready(function () {
    $("#fb_button_login").click(function () {
        FB.login(function (response) {
            if (response.authResponse) {
                console.log('Welcome!  Fetching your information.... ');
                FB.api('/me', function (response) {
                    console.log('Good to see you, ' + response.name + '.');
                });
            } else {
                console.log('User cancelled login or did not fully authorize.');
            }
        });


    });
});

</script>
<a href="javascript://" id="fb_button_login">Login</a>
</body>
</html>