auth.statusChange не срабатывает во время FB.init, если пользователь не вошел в Facebook

Я задавался вопросом, нашел ли кто-нибудь обходной путь к поведению, которое я испытываю.

Возьмите пример кода ниже:

<script>
window.fbAsyncInit = function() {
        FB.init({
          appId      : '[----removed-------]', // App ID
          channelUrl : 'http://localhost/channel.html', // Channel File
          status     : true, // check login status
          cookie     : true, // enable cookies
          xfbml      : true  // parse XFBML
        });     
        // Additional initialization code here

        FB.Event.subscribe('auth.statusChange',fbLoginStatus);

        console.log("getloginstatus");

        FB.getLoginStatus(fbLoginStatus);
</script>

Использование FB.init со статусом true, по сути, вызываетgetLoginStatus() в соответствии сдокументация в фейсбуке, Тем не менее, этоочевидно, предполагаемое поведение что это будетnot вызвать событиеauth.statusChangeпотому что значением по умолчанию является «неизвестный»,and значение для "не вошло в систему" также является «неизвестным»; (хотя это может быть известно !!)

Поэтому мне пришлось позвонитьFB.getLoginStatus() эксплицитноas well as со статусом true, если я хочу также отвечать пользователям, которые не вошли в Facebook.

Проблема заключается в том, что это приводит к тому, что функция вызывается дважды, если пользователь что-то отличает от «выхода из системы».

Есть ли хороший способ остановить это? Я думаю, что моя единственная возможность - вызвать другую функцию для обработки событий изменения аутентификации.

Ответы на вопрос(3)

Ваш ответ на вопрос