检查用户的Facebook权限并重新提示缺少权限

时间:2014-04-15 15:03:15

标签: c# javascript facebook facebook-graph-api facebook-javascript-sdk

我正在使用ASP.net MVC 4创建一个网站,我可以让用户使用他们的Facebook帐户登录,问题是如果用户拒绝发布权限我想检查他们的活动权限和方法如果有必要提示,我已经创建了这个脚本:

<script>

    document.getElementById('checkPerms').onclick = function () {
        checkPermissions();
    };


    var checkPermissions = function () {
        FB.api('/me/permissions', function (response) {
            console.log(response);
        });
    };


</script>

它应该返回活动权限,但是我收到错误:必须使用活动访问令牌来查询有关当前用户的信息。

所以我无法检查用户的权限,我也不确定如何重定向到某个操作或如何重新提示这些权限。

2 个答案:

答案 0 :(得分:1)

此错误:

  

必须使用活动访问令牌来查询有关当前用户的信息

只是表示当前没有会话用户。因此,/me将失败。你没有提到,所以我不确定你在哪里检查权限。但是,当用户进入会话时,您应该在那时检查它们。

/me/permissions通常用于检查发布权限,因为人们经常会跳过此权限。因此,在发布之前,请调用此方法并要求发布权限。

答案 1 :(得分:0)

我找到了解决方案,我必须保存Facebook令牌,然后从视图模型中检索它。

FB.init({
            appId: APPID,
            authResponse: {
                accessToken: '@Model.FacebookToken'
            }
        });
在此之后,我必须检查是否存在许可;如果没有,那么我再次请求他们:

 var checkPermissions = function () {
        FB.api('/me/permissions', function (response) {
            var perms = response.data[0];
            // Check for publish_stream permission
            if (perms.publish_stream) {
                console.log('User has permission')
            } else {
                FB.login(function (response) {
                    // Request permission
                }, { scope: 'publish_actions' });
            }

        });
    };