C# 检查用户';s Facebook权限并重新提示缺少的权限
我正在使用ASP.net MVC 4创建一个网站,我可以让用户使用他们的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
<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
的调用中,如果用户已授予访问权限,则该调用将提供访问令牌。