Facebook автоматический вход - уведомить пользователя - PullRequest
0 голосов
/ 13 января 2012

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

Пользователь автоматически входит на мой сайт через Facebook, если -

  • Они зарегистрированы на моем сайте через Facebook
  • Они не вышли из моего сайта и не закончили свою сессию.
  • В настоящее время они зарегистрированы в Facebook

Это нормально, за исключением того, что существует пауза между доступом пользователя к домашней странице и переходом на его панель инструментов, в то время как Facebook проверяет, вошли ли они в систему. Есть ли способ показать своего рода предварительный загрузчик, который говорит: «Подписание с Facebook ", в то время как переход сделан?

Я использую следующий JavaScript на Facebook -

<script>
  window.fbAsyncInit = function() {
              FB.init({
                appId      : 'xxxxxxxxx',
                status     : true, 
                cookie     : true,
                xfbml      : true,
                oauth      : true,
              });

              FB.Event.subscribe('auth.login', function() {
                  FB.api('/me', function(response) {
                window.location='mysite/fb_signin/';
                  });
              });

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

          </script>

Спасибо.

Ответы [ 2 ]

1 голос
/ 14 января 2012

С помощью API Facebook вы можете проверить, подключен ли пользователь, или нет, прежде чем делать звонок в FB.api (на это нужно время).

http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

Это должно помочь

0 голосов
/ 14 января 2012

Я согласен с Марком в том, что вы можете использовать getLoginStatus (), чтобы определить, кто они, прежде чем отправлять их в то или иное место.Тем не менее, вы сказали, что что-то было медленно.Так что это заставило меня взглянуть на ваш код, и кажется, что вы пропускаете channelUrl в вызове FB.init () (см. https://developers.facebook.com/docs/reference/javascript/ для получения дополнительной информации)без channelUrl взаимодействие пользователя с функциями Javascript SDK будет медленным и медленным.

...