facebook javascript sdk getLoginStatus()问题

时间:2011-01-31 03:19:29

标签: javascript facebook

我正在尝试设置Facebook Javascript SDK,让用户通过Facebook登录网站。毋庸置疑,我对Facebook上的文档感到困惑。我的第一个问题是,我是否能够检测到用户何时访问我的网站登录Facebook并确定他们的Facebook ID并从那里登录到我的网站(所有这些都没有任何用户交互)?除了这部分外,似乎一切正常。如果用户单击Facebook登录按钮,则一切正常,getLoginStatus()正常运行。但是在初始页面加载时,getLoginStatus()似乎没有调用回调函数。我的印象是,甚至不应该有一个登录按钮,如果他们登录到Facebook,它应该是Facebook“注册”按钮。我在下面提供了一些代码。如果有人能给我任何指导,我将不胜感激。请记住,我已删除了我的应用ID和我的网站名称,并将其替换为“虚拟”文字。

<!-- Load Facebook javascript SDK (This should be the first item after the opening body tag) -->
<div id="fb-root"></div>
<script> 
      window.fbAsyncInit = function() {
        FB.init({appId: myAppId, status: true, cookie: true,
                 xfbml: true});

        FB.getLoginStatus(function(response) {
          if (response.session) {
            // logged in and connected user, someone you know
                    alert('I know you');
          } else {
            // no user session available, someone you dont know
               alert('Who are you?');
          }
            alert(response.session.uid);

        });
      };

      (function() {
        var e = document.createElement('script'); e.async = true;
        e.src = document.location.protocol +
          '//connect.facebook.net/en_US/all.js';

        document.getElementById('fb-root').appendChild(e);
      }());
</script>
<fb:login-button show-faces="false" width="70" max-rows="1" registration-url="myRegistrationUrl" style="margin: 0; padding: 0;"></fb:login-button>

2 个答案:

答案 0 :(得分:0)

您好,因为据我所知,您希望根据自己的Facebook帐户登录用户进入您的网站。我做了同样的事情。首先让用户登录facebook,然后将其用户ID发送到您的用户表,然后将他登录到您的站点。对于我来说代码工作。

<div id="fb-root">
 <script>
   window.fbAsyncInit = function() {
   FB.init({appId: "XXXXXX",
            status: true,
            cookie: true,
            xfbml: true});

    FB.getLoginStatus(function(response) {
      if (response.session) {
        //here send the parameters to your system that logins into your system
        self.location.href="http://www.yoursite.com/login.php";
      } else {

        }
    }); 
    FB.Event.subscribe("auth.login", function(response) {
    window.location.reload();
      });
FB.Event.subscribe("auth.logout", function(response) {
    // to logout

    self.location.href="http://www.yoursite.com/logout.php";
      });
     };
   (function() {
     var e = document.createElement("script");
     e.type = "text/javascript";
     e.src = document.location.protocol +
     "//connect.facebook.net/en_US/all.js";
     e.async = true;
     document.getElementById("fb-root").appendChild(e);
   }());
   </script>

在login.php,您可以检查他们的用户名。并将它们登录到您的站点。我做了什么,我发送通过jason返回给我的用户ID作为他们的用户名,并在我的usertable中以md5作为密码发送。然后我只是比较login.php中我的用户表中的userid并将用户登录到我的站点。我希望它也适合你

答案 1 :(得分:0)