如何检查用户是否具有同步publish_stream权限

How to check if user has publish_stream permission synchrounously?

本文关键字:同步 publish 权限 stream 是否 何检查 检查 用户      更新时间:2023-09-26

当有人点击一个按钮时,我想检查用户是否具有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登录功能之前先检查权限。

为什么我想要它同步?因为我需要在点击甚至处理程序中执行此操作,否则浏览器开始抱怨我随机打开弹出窗口,所以我认为应该同步完成。

非常感谢,在

漫长的一天之后,对js和facebook感到绝望。

我不确定这是否是最好的解决方案,但我使用 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' ?>;