Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 检查用户';s Facebook权限并重新提示缺少的权限_C#_Javascript_Facebook_Facebook Graph Api_Facebook Javascript Sdk - Fatal编程技术网

C# 检查用户';s Facebook权限并重新提示缺少的权限

C# 检查用户';s Facebook权限并重新提示缺少的权限,c#,javascript,facebook,facebook-graph-api,facebook-javascript-sdk,C#,Javascript,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我正在使用ASP.net MVC 4创建一个网站,我可以让用户使用他们的facebook帐户登录,问题是如果用户拒绝发布权限,我想检查他们的活动权限以及在必要时重新提示的方式,我创建了以下脚本: <script> document.getElementById('checkPerms').onclick = function () { checkPermissions(); }; var checkPermissions = functi

我正在使用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>

document.getElementById('checkPerms')。onclick=function(){
检查权限();
};
var checkPermissions=函数(){
api('/me/permissions',函数(响应){
控制台日志(响应);
});
};
它应该返回活动权限,但我得到一个错误:必须使用活动访问令牌来查询有关当前用户的信息

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

此错误:

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

这意味着当前会话中没有用户。因此,
/me
将失败。你没有提到,所以我不确定你到底在哪里检查权限。但是当用户在会话中时,您应该检查它们


/me/permissions
通常用于检查发布权限,因为人们经常跳过此权限。因此,在发布之前,您可以打电话请求发布许可。

我找到了解决方案,我必须保存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' });
            }

        });
    };

感谢您的回复,它帮助我查看了FB.init并找到了解决方案!您还可以将代码包装在对
FB.getLoginStatus
的调用中,如果用户已授予访问权限,则该调用将提供访问令牌。