2011-12-12 4 views
7

this question dayanarak, bir kullanıcı PHP tabanlı Facebook SDK kullanarak bir uygulama için belirli izinler kümesi verilmiş olup olmadığını kontrol etmenin bir yolu var mı? API'ye göz attım ama hiçbir şey bulamadım. İhtiyacınız olan izni kontrol etmek eğerBir kullanıcının PHP uygulamam için belirli bir izinler grubu alıp almadığını nasıl kontrol edebilirim?

+0

[cevabım bkz] (http://stackoverflow.com/a/37130185/281087) kontrol etmek edin facebook-php-sdk-v4-5.0.0 –

cevap

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

sonra kullanmak

EX:

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

Eğer bu da çalışmış 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

kullanarak FQL kod parçası kod stili çirkin görünüyor. Doğru blok girintisiyle yeniden biçimlendirebilir misiniz? Kodunuzu tercih ettiğiniz düzenleyicide düzenlemek her zamanki gibi kolaydır, sadece kod parçasına 4 boşluk girintisi eklemeniz ve buraya kopyalayıp yapıştırmanız yeterlidir. – lig

2

kullanıyorsanızBenim için, durumlarda ben bir erişim simgesi var, ama kullanıcının kimliği vardı yoktu zaman:

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