2011-12-12 16 views
7

Dựa trên this question, có cách nào để kiểm tra liệu người dùng đã cấp một nhóm quyền nhất định cho một ứng dụng bằng cách sử dụng PHP SDK dựa trên PHP không? Tôi đã duyệt API nhưng không thể tìm thấy bất kỳ thứ gì.Làm cách nào để kiểm tra xem người dùng đã cấp một số quyền nhất định cho ứng dụng PHP của tôi?

+0

hãy [xem câu trả lời của tôi] (http://stackoverflow.com/a/37130185/281087) để kiểm tra sử dụng kiểu mã phân đoạn mã FQL của facebook-php-sdk-v4-5.0.0 –

Trả lời

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

sau đó sử dụng nếu để kiểm tra sự cho phép của bạn cần

EX:

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

Nếu bạn đang sử dụng 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

trông có vẻ xấu xí. Bạn có thể định dạng lại nó với khối thụt đầu dòng chính xác không. Nó là bình thường dễ dàng để chỉnh sửa mã của bạn trong trình soạn thảo ưa thích của bạn hơn bạn chỉ cần thêm 4 dấu cách không gian cho toàn bộ đoạn mã và sao chép/dán nó ở đây. – lig

2

này cũng làm việc đối với tôi, trong trường hợp khi tôi không có một thẻ truy cập, nhưng có ID của người dùng:

$isGranted = $facebook->api(array(
    "method" => "users.hasAppPermission", 
    "ext_perm" => "publish_stream", 
    "uid"  => $facebook_id 
)); 
Các vấn đề liên quan