javascript - facebook javascript sdk getLoginStatus() 问题

标签 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>

最佳答案

您好,据我了解,您希望根据用户的 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 作为他们的用户名,并在 md5 之后将其作为密码发送到我的用户表中。然后我简单地比较 login.php 中我的用户表中的 userid 并将用户登录到我的站点。我希望它也对你有用

关于javascript - facebook javascript sdk getLoginStatus() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4847330/

相关文章:

javascript - 如何使用 jquery 或 javascript 获取单选按钮 Id 值

Facebooksigned_request 返回 NULL

javascript - 如何将 Facebook "Like"按钮添加到 AJAX 驱动页面

Android 与 Facebook SharePhotoContent 分享图片 URL

php - 将图片上传到页面相册可以,但将图片发布到墙上不行

javascript - 使用 <text> 元素为 SVG 添加标题?

javascript - Vue 通过 props 和 "this"回调

javascript - Swiper Center Slide on click 事件

javascript - Mobile Safari 上的惯性滚动事件

Javascript Number-String DIV onclick 奇怪的转换