Facebook 在auth.authResponseChange事件中处理response.status时出现问题
我想创建一个登录系统,也可以使用FB的登录。因此,我在我的页面中设置了FB对象和SDK,然后订阅了Facebook 在auth.authResponseChange事件中处理response.status时出现问题,facebook,facebook-javascript-sdk,facebook-login,facebook-authentication,xfbml,Facebook,Facebook Javascript Sdk,Facebook Login,Facebook Authentication,Xfbml,我想创建一个登录系统,也可以使用FB的登录。因此,我在我的页面中设置了FB对象和SDK,然后订阅了auth.authResponseChange事件,并添加了一个匿名函数,用于在我已登录、未登录或未授权的情况下执行操作 当我登录时,它工作正常。当我未登录或未授权时,它不会执行任何操作。我认为它也不会进入匿名函数,因为我在if前面放了一个console.log(),它什么也不做 这是我的密码: // Facebook stuff window.fbAsyncInit = function() {
auth.authResponseChange
事件,并添加了一个匿名函数,用于在我已登录、未登录或未授权的情况下执行操作
当我登录时,它工作正常。当我未登录或未授权时,它不会执行任何操作。我认为它也不会进入匿名函数,因为我在if
前面放了一个console.log(),它什么也不做
这是我的密码:
// Facebook stuff
window.fbAsyncInit = function()
{
FB.init({
appId : 'my id blabla', // App ID
channelUrl : 'my channel.html bla bla', // Channel File
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.authResponseChange', function(response)
{
console.log("Running function");
if(response.status === "connected")
{
console.log("Connected and authorized");
}
else if (response.status === 'not_authorized')
{
console.log("Not authorized");
}
else
{
console.log("Not connected");
}
});
};
// Load the SDK asynchronously
(function(d)
{
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
我也有同样的问题,但如果你订阅的是“auth.statusChange”而不是“authResponseChange”,你可以知道他是否“连接”到facebook并授权了你的应用程序,或者他是否连接到fb但未授权 此外,如果您使用facebook建议不要使用的FB.getLoginStatus,您可以知道用户处于三种状态(已连接、未自动设置或未连接)中的哪一种