2011-12-12 49 views

回答

33
$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/

+1

FQL代码片段代码样式看起来很丑。你能否用正确的块缩进来重新格式化它。在首选编辑器中编辑代码通常很容易,而不需要在整个代码片段中添加4个空格缩进并将其复制/粘贴到此处。 – lig

2

这也工作对我来说,在情况下,当我没有访问令牌,但有用户的ID:

$isGranted = $facebook->api(array(
    "method" => "users.hasAppPermission", 
    "ext_perm" => "publish_stream", 
    "uid"  => $facebook_id 
)); 
相关问题