我想从我的网站和FB注销用户。
首先是preventDefault(阻止表单提交)然后是getLoginStatus(需要FB访问令牌),然后调用FB.logout,最后在我的页面上提交注销表单。
$("logout-button").click(function (event) {
event.preventDefault();
FB.getLoginStatus(function (response) {
if (response && !responce.error) {
if (response.status === "connected") {
FB.logout();
}
}
});
$("logout-form").submit();
});
问题是提交优先,永远不会调用FB.logout()。
关于如何使这个脚本始终首先执行FB.getLoginStatus的任何建议,等待函数exe并最终调用submit?
答案 0 :(得分:1)
FB.getLoginStatus应该在页面加载时使用,因此您只需将用户ID存储在变量中 - 以检查用户是否已登录:
var userID;
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
userID = response.authResponse.userID;
}
});
....然后:
$("logout-button").click(function (event) {
event.preventDefault();
if (userID) {
FB.logout();
}
$("logout-form").submit();
});
我的未经考验的想法,但它应该工作。你应该总是在用户交互上调用FB.logout和FB.login - 现在你在FB.getLoginStatus的异步回调函数中调用它。