我使用FB.getLoginStatus()
检查登录信息,以便在需要时显示授权对话框。
在这种情况下,如果用户从下面的屏幕取消选中电子邮件,屏幕将不会尝试通过显示对话框重新询问用户,并且调用FB.login将导致警告用户已经过身份验证。有一种方法可以将带有recheck选项的范围传递给FB.getLoginStatus()
吗?或任何其他解决方案让我走上正轨
function checkLoginState() {
FB.getLoginStatus(function (response) {
//console.log('statusChangeCallback');
//console.log(response);
if (response.status === 'connected') {
// Logged into your app and Facebook.
LogUserIn();
} else if (response.status === 'not_authorized') {
//console.log('you must authorize the app');
alert(message);
} else {
//console.log('Please log into Facebook.');
}
});
}
答案 0 :(得分:6)
来自facebook文档:
可以让某人一次授予他们拒绝的应用权限。你应该有一个教育屏幕,说明为什么你认为他们应该给你许可,然后重新询问。但是,如果您使用[上一节]中描述的方法(#rebootation-permissions-dialog),登录对话框将不会要求该权限。
这是因为一旦有人拒绝了权限,登录对话框就不会重新询问它们,除非您明确告诉对话框您要求拒绝许可。
您可以通过将auth_type:rerequest标志添加到FB.login()调用来执行此操作:
FB.login(
function(response) {
console.log(response);
},
{
scope: 'user_likes',
auth_type: 'rerequest'
}
);
答案 1 :(得分:0)