在我的应用程序中,我让我的用户与 FB 连接并授予我的应用程序权限。
当他们单击“连接”按钮时,会显示 FB 弹出窗口,他们会获得“使用 facebook 登录”,然后他们需要获得 publish_stream、manage_pages、电子邮件的大权限。
我的代码遇到的问题是,如果他们删除了其中一项权限(如 manage_pages ) checkLoginStatus 仍然允许用户继续。
那么如何验证用户是否已授予请求的权限?
<div id="fb-root"></div>
<script src="//connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
FB.init({
appId: '<?=FB_APP_ID?>',
status: true,
cookie: true
});
FB.getLoginStatus(checkLoginStatus);
function authUser() {
FB.login(checkLoginStatus, {scope:'publish_stream, manage_pages, email'});
}
function checkLoginStatus(response) {
if(response && response.status == 'connected') {
$('#connbut').hide();
FB.api('/me', function(user) {
if (user) {
$('#fbuser-name').text(user.name);
$('#fbuserpict').attr('src', 'https://graph.facebook.com/' + user.id + '/picture');
$('#fbname').val(user.name);
$('#fbpict').val('https://graph.facebook.com/' + user.id + '/picture');
}
});
} else {
// Display the login button
$('#connbut').show();
}
}
</script>