当有人点击某个按钮时,我想检查用户是否具有publish_stream权限,如果他有,则我们继续使用我们的功能。
我目前以下列方式制作:
function facebookLogin(callback)
{
FB.login(function(response) {
if (response.authResponse) {
console.log('We should save the access token');
callback();
} else {
console.log('User cancelled login or did not fully authorize.');
jGrowl('Without authorizing our application you will not be able to access all features.');
}
}, {scope: 'publish_stream,'});
}
回调是我想在用户给我publish_stream权限后执行的操作。我想在做facebook登录功能之前先检查是否允许。
为什么我要同步?因为我需要在click even处理程序中执行它,否则浏览器开始抱怨我随机打开弹出窗口,所以它应该同步完成我认为。
非常感谢,经过漫长的一天后,我对js和facebook绝望了。
答案 0 :(得分:1)
我不确定这是否是最好的解决方案,但是我使用PHP来使用Graph API检查权限,然后使用JavaScript对结果进行操作:
<?php
$url = 'https://graph.facebook.com/me/permissions?access_token=' . $token;
$permissions = json_decode(file_get_contents($url));
$has_publish_permission = isset($permissions->data[0]->publish_stream);
?>
var can_publish = <?php echo $has_publish_permission ? 'true' : 'false' ?>;