重新查询fb js skd中拒绝的权限

sar*_*pta 2 javascript sdk facebook

我正在使用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.');
        }
    });
}
Run Code Online (Sandbox Code Playgroud)



验证对话框

Dar*_*ski 6

来自facebook文档:

可以让一个人一次授予他们已拒绝的应用权限.你应该有一个教育屏幕,说明为什么你认为他们应该给你许可,然后重新询问.但是,如果您使用[上一节]中描述的方法(#rebootation-permissions-dialog),登录对话框将不会要求该权限.

这是因为一旦有人拒绝了许可,登录对话框就不会重新询问它们,除非您明确告诉对话框您要求拒绝许可.

您可以通过向FB.login()调用添加auth_type:rerequest标志来执行此操作:

FB.login(
  function(response) {
    console.log(response);
  },
  {
    scope: 'user_likes',
    auth_type: 'rerequest'
  }
);
Run Code Online (Sandbox Code Playgroud)