【问题标题】:reasking for declined permissions in fb js sdk在 fb js sdk 中重新请求被拒绝的权限
【发布时间】:2014-05-26 10:19:51
【问题描述】:

我正在使用FB.getLoginStatus() 来检查登录,如果需要,它将显示授权对话框。
在这种情况下,如果用户从下面的屏幕取消选中电子邮件,则屏幕不会尝试通过显示对话框来重新询问用户,并且调用 FB.login 将导致警告用户已通过身份验证。有一种方法可以将带有重新检查选项的范围传递给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.');
        }
    });
}



【问题讨论】:

    标签: javascript facebook sdk


    【解决方案1】:

    来自 facebook 文档:

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

    这是因为一旦有人拒绝了权限,登录对话框将不会重新请求他们,除非您明确告诉对话框您正在重新请求拒绝的权限。

    您可以通过将 auth_type: rerequest 标志添加到您的 FB.login() 调用来做到这一点:

    FB.login(
      function(response) {
        console.log(response);
      },
      {
        scope: 'user_likes',
        auth_type: 'rerequest'
      }
    );
    

    【讨论】:

      【解决方案2】:

      查看https://developers.facebook.com/docs/facebook-login/login-flow-for-web/v2.0,特别是重新请求拒绝权限部分

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-07
        • 2014-09-03
        • 2019-09-20
        • 2022-11-09
        • 2011-04-22
        • 2019-10-05
        相关资源
        最近更新 更多