我正在尝试设置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>
答案 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)