2011-12-12 42 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 
)); 
相關問題