Javascript 打开新窗口进行fb登录
我想使用fb在我的聊天室中登录我的用户。我的聊天室是一个可与其他使用javascript的网站共享的聊天室 我想做的是,当一个用户点击一个按钮“FB登录”,它会打开一个窗口FB登录。然后用户将接受权限,然后。。这将是登录到我的聊天室 我的问题是,聊天室如何知道用户是否登录?此登录的触发事件? 因此聊天室将执行init();换一下按钮 (更改登录按钮-->注销按钮)Javascript 打开新窗口进行fb登录,javascript,php,login,logout,Javascript,Php,Login,Logout,我想使用fb在我的聊天室中登录我的用户。我的聊天室是一个可与其他使用javascript的网站共享的聊天室 我想做的是,当一个用户点击一个按钮“FB登录”,它会打开一个窗口FB登录。然后用户将接受权限,然后。。这将是登录到我的聊天室 我的问题是,聊天室如何知道用户是否登录?此登录的触发事件? 因此聊天室将执行init();换一下按钮 (更改登录按钮-->注销按钮) 我的方法是,首先,用户访问一个网站(使用javascript访问我的聊天室的其他网站)--->chatbox run init()[
我的方法是,首先,用户访问一个网站(使用javascript访问我的聊天室的其他网站)--->chatbox run init()[一个显示聊天室名称、用户名的函数,然后是登录按钮,如果用户在运行init()之前登录,则按钮是注销]->如果用户登录,javascript将打开一个php文件,该文件重定向到facebook登录-->用户权限已接受的链接,该按钮将自动从登录更改为注销。。与注销相同。在Javascript中,按钮将从注销变为登录。我知道有两种方法可以检查当前访问者是否登录到Facebook,是否接受/未接受你的FBU应用程序
response.status
是否存在,只是为了确保仍然没有错误,它应该有三个可能的值:
response.status==“已连接”
-您的访问者已接受Facebook应用程序(并已登录Facebook)response.status==“未授权”
-您的访问者尚未接受Facebook应用程序(并已登录Facebook)response.status==“unknow”
-如果你的页面一切正常,这实际上意味着你的访问者没有登录Facebookauth.statusChange
也很有用,如果您想捕获在第一页查看之后、访问期间甚至在当前浏览器的不同选项卡上登录Facebook的访问者
在任何情况下,我建议使用Javascript调试器并执行不同的测试:与已连接、已登录和未登录的用户进行测试
在下一行中显示更新:
<!DOCTYPE html>
<html>
<head>
<meta charset="US-ASCII">
<title>test-facebook-login</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : '1234567890', // App ID from the app dashboard
channelUrl : '//www.yoursitehere.com/channel.html',
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
FB.Event.subscribe('auth.statusChange', function(response) {
if (window.console)
window.console.log(response);
});
/*
// On the other hand you could call this:
FB.getLoginStatus( function(response) {
if (window.console)
window.console.log(response);
});
*/
// Additional initialization code such as adding Event Listeners goes here
};
(function(){
if (document.getElementById('facebook-jssdk')) {return;}
var headElement = document.getElementsByTagName('head')[0];
var facebookJS = document.createElement('script');
facebookJS.id = 'facebook-jssdk';
facebookJS.src = '//connect.facebook.net/en_US/all.js';
headElement.parentNode.appendChild(facebookJS);
}());
</script>
</body>
</html>
测试facebook登录
window.fbAsyninit=函数(){
//初始化FBJSSDK
FB.init({
appId:'1234567890',//应用程序仪表板中的应用程序ID
channelUrl:'//www.yoursitehere.com/channel.html',
状态:true,//检查Facebook登录状态
xfbml:true//在页面上查找社交插件
});
FB.Event.subscribe('auth.statusChange',函数(响应){
if(window.console)
window.console.log(响应);
});
/*
//另一方面,你可以称之为:
FB.getLoginStatus(函数(响应){
if(window.console)
window.console.log(响应);
});
*/
//附加的初始化代码(如添加事件侦听器)如下所示
};
(功能(){
if(document.getElementById('facebook-jssdk')){return;}
var headElement=document.getElementsByTagName('head')[0];
var facebookJS=document.createElement('script');
facebookJS.id='facebook jssdk';
facebookJS.src='//connect.facebook.net/en_US/all.js';
headElement.parentNode.appendChild(facebookJS);
}());
如果用户访问该页面但未登录,将显示登录链接。如果他/她单击登录(页面加载后),它将记录(响应)?是否使用了FB.Event.subscribe('auth.statusChange',function(response){if(window.console)window.console.log(response);});auth.statusChange用于正确识别用户是否登录Facebook,即使用户已登录并已接受您的FB应用程序