Основываясь на этом вопросе , есть ли способ проверить, предоставил ли пользователь определенный набор разрешений для приложения с помощью PHP SDK на основе PHP? Я просмотрел API, но ничего не нашел.
$permissions = $facebook->api("/me/permissions");
затем используйте if, чтобы проверить, какое разрешение вам нужно
EX:
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/
Это также сработало для меня, в тех случаях, когда у меня не было токена доступа, но имел идентификатор пользователя:
$isGranted = $facebook->api(array( "method" => "users.hasAppPermission", "ext_perm" => "publish_stream", "uid" => $facebook_id ));