我正在检查用户登录状态。 我使用了fb给出的facebook代码,但它只显示登录按钮。我想检查用户是否已登录。
function testAPI() {
console.log('Welcome! Fetching your information.... ');
FB.api('/me', function(response) {
console.log('Successful login for: ' + response.name);
document.getElementById('status').innerHTML =
'<br/>Thanks for logging in, ' + response.name + '<br/>User Id: '+ response.id + '<br/>Email Id: '+ response.email + '!';
//window.location.replace('abc.html');
});
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
答案 0 :(得分:2)
您的代码与我发布的here的Facebook代码不同。它很接近,但有几个键差异和注意事项。您的更多文件在这里会非常有用。请确保您已收到Facebook的应用程序ID并为您的应用程序注册。但要明确的是,您似乎在错误的时间检查登录状态。这只是一个函数,我们不知道它在哪里调用,或者它模仿我提供的链接上的流程就像这样(即使这不是它们在facebook给出的代码中的组织方式)。如果你有一个带有id='status'
的HTML文本项,你也会看到一些东西。所有这些我无法用你的代码告诉我。
用户按下执行此代码的登录信息:
<fb:login-button scope="public_profile,email" onlogin="checkLoginState();">
</fb:login-button>
上面的代码为您提供了facebook提供的常规范围(为了获得更多范围,您必须通过Facebook的请求流程,仅供参考)。正如您所看到的,按下此按钮并完成描述为onlogin
的操作后,我们将执行以下功能checkLoginState()
:
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
这会获得登录状态&#34;然后调用函数statusChangeCallback(response)
:
function statusChangeCallback(response) {
console.log('statusChangeCallback');
console.log(response);
// The response object is returned with a status field that lets the
// app know the current login status of the person.
// Full docs on the response object can be found in the documentation
// for FB.getLoginStatus().
if (response.status === 'connected') {
// Logged into your app and Facebook.
testAPI();
} else if (response.status === 'not_authorized') {
// The person is logged into Facebook, but not your app.
document.getElementById('status').innerHTML = 'Please log ' +
'into this app.';
} else {
// The person is not logged into Facebook, so we're not sure if
// they are logged into this app or not.
document.getElementById('status').innerHTML = 'Please log ' +
'into Facebook.';
}
}
现在,上面的代码IF CONNECTED将调用您的testAPI()
函数,该函数将下拉响应。并且它会尝试查找ID为status
的HTML文档,如果您没有创建它,则不会显示任何内容。
如果您确定已执行了所有这些步骤并正确执行了这些步骤,那么我建议您在浏览器中查看几个console.log()语句并查看Google Chrome控制台或Javascript控制台,并了解您所处的状态并且您的功能实际上已被调用。
如果您不确定,请仔细检查Facebook登录页面。这是很好的文档。