我正在尝试将用户自动登录到我的网站,他们已经允许我们的Facebook应用程序,最初我打算使用:
var cb = function(response) {
if (response.status === 'connected') {
FB.api('/me', function(response) {
$.post( url, { 'op':'facebook','name':response['name'],'id':response['id'],'email':response['email']},
function( data ) {
parent.location.reload();
});
});
} else {
alert('You are not logged in');
}
};
FB.login(cb, { scope: 'publish_actions,publish_stream,read_stream,email' });
虽然使用它会打开一个facebook弹出窗口,当以这种自动方式完成时会被许多弹出窗口拦截器和浏览器阻止,并且还会显示给不允许我们的应用程序的用户。
我希望它能够独立完成,但我不确定如何:S
如果有人可以告诉我如何使用javascript登录,那将会非常棒:)
答案 0 :(得分:1)
提示用户登录应该取决于用户生成的事件,例如单击元素。大多数浏览器都会阻止尝试自动打开新窗口,除非有足够的信心确认用户已请求操作。
如果您想在加载页面时自动检测访问者的登录状态,您应该挂钩Javascript SDK公开的各种auth事件(“auth.authResponseChange”,“auth.login”等),或者手动使用“FB.getLoginStatus”方法请求访问者的状态。您可以在https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/
了解有关这些活动的更多信息答案 1 :(得分:0)
管理让它运作!再次阅读facebook教程,这就是我想出来的
window.onload=function(){
var url = "http://mysite.com/";
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
FB.api('/me', function(response) {
$.post( url, { 'op':'facebook','name':response['name'],'id':response['id'],'email':response['email']},
function( data ) {
parent.location.reload();
});
});
}
});
};