我正在尝试设置 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/