Как проверить, предоставил ли пользователь определенный набор разрешений моему PHP-приложению?


Основываясь на этом вопросе , есть ли способ проверить, предоставил ли пользователь определенный набор разрешений приложению, используя PHP на основе Facebook SDK? Я просмотрел API, но ничего не смог найти.

Author: Dilip Raj Baral, 2011-12-12

2 answers

$permissions = $facebook->api("/me/permissions");

Затем используйте if, чтобы проверить, какое разрешение вам нужно

ПРИМЕР:

if (array_key_exists('publish_stream', $permissions['data'][0])) {
    postToWall();
} else {
    //Does not have permission
}

Если вы используете FQL

$perms = $facebook->api(array(
    "method" => "fql.query",
    "query" => "SELECT read_stream,offline_access,publish_stream FROM permissions WHERE uid=me()"
        ));
echo "<ul>";
foreach ($perms[0] as $k => $v) {
    echo "<li>";
    if ($v === "1") {
        echo "<strong>$k</strong> permission is granted.";
    } else {
        echo "<strong>$k</strong> permission is not granted.";
    }
    echo "</li>";
}

Http://www.masteringapi.com/tutorials/how-to-check-if-user-has-certian-permission-facebook-api/22/

 33
Author: mario, 2012-11-12 22:57:40

Это также работало для меня в тех случаях, когда у меня не было токена доступа, но был идентификатор пользователя:

$isGranted = $facebook->api(array(
    "method"    => "users.hasAppPermission",
    "ext_perm"   => "publish_stream",
    "uid"       => $facebook_id
));
 2
Author: evanmcd, 2013-04-03 18:06:55