Facebook自动登录 - 通知用户

时间:2012-01-13 19:59:29

标签: facebook preloader autologin

我允许我的用户使用他们的Facebook帐户登录我的网络应用程序。

如果 -

,用户将通过Facebook自动登录我的网站
  • 他们使用Facebook注册到我的网站
  • 他们尚未退出我的网站并结束了他们的会话
  • 他们目前已登录Facebook

这没关系,除了用户访问主页和被带到他们的仪表板之间有一个暂停,而Facebook检查他们是否已经登录。有没有办法显示一种预加载器,上面写着“签名”与Facebook合作“虽然过渡了吗?

我正在使用以下Facebook javascript -

<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 个答案:

答案 0 :(得分:1)

使用facebook api,您可以在调用FB.api之前检查用户是否已连接(这需要花费时间)。

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

这应该有帮助

答案 1 :(得分:0)

我同意Marc的说法,你可以使用getLoginStatus()来帮助你确定它们在将它们发送到一个或另一个地方之前的含义。但是,你说的话很慢。所以这让我看了你的代码,看来你错过了FB.init()调用中的channelUrl(有关更多信息,请参阅https://developers.facebook.com/docs/reference/javascript/)。没有channelUrl用户与Javascript SDK功能的交互将会缓慢而缓慢。