2012-01-25 4 views
1

Как я могу получить идентификатор пользователя админов страницы в facebook, используя grapg API.?Как я могу получить идентификатор пользователя админов страницы в facebook.?

Для, например: Это даст подробную информацию о странице KFC

https://graph.facebook.com/126380033352 

{ 
    "id": "126380033352", 
    "name": "I Love KFC", 
    "picture": "http://profile.ak.fbcdn.net/hprofile-ak-snc4/50510_126380033352_4943708_s.jpg", 
    "link": "http://www.facebook.com/Official.KFC", 
    "likes": 543485, 
    "category": "Food/beverages", 
    "username": "Official.KFC", 
    "founded": "1929", 
    "about": "KFC United Kingdom. Finger Lickin' Good.", 
    "can_post": true, 
    "talking_about_count": 8965, 
    "type": "page" 
} 

мне нужно, чтобы получить идентификатор пользователя на страницу администратора ..? Я проверил разрешения, но я не знаю, как это получить.

ответ

5

Первый: пользователь должен быть администратором этой страницы.

С разрешением «manage_pages», запрос GET https://graph.facebook.com/[PAGE_ID]?fields=access_token В ответ получите страницу admin access_token. Теперь используйте страницу admin access_token для запроса GET https://graph.facebook.com/[PAGE_ID]/admins

В ответ вы получите список администраторов, их идентификатор и имена пользователей.

Ссылка: http://developers.facebook.com/docs/reference/api/page/

+0

Обычный пользователь не может получить это ..? – Sarath

+3

«Кто является администратором страницы», эта информация не является общедоступной. Таким образом, вы не можете получить эту информацию с разрешения любого администратора этой страницы. – Sarim

+0

Правильно, токен доступа пользователя, которому выдается токен, должен быть администратором этой страницы, чтобы просмотреть список администраторов. – DMCS

0

Вы не можете получить все пользователи администратора приложения, но вы можете проверить любой жидкости.

Прежде всего вам необходимо предоставить разрешение «manage_pages», а затем запросить таблицу page_admin. Реализация FQL для текущего пользователя выглядит следующим образом:

$isAdmin = false; 
$hasManagePerm = false; 

try{ 
    $responses = $facebook->api('fql', 'GET', Array('q' => Array(
     'hasManagePerm' => 'SELECT manage_pages FROM permissions WHERE uid=me()', 
     'isAdmin' => 'SELECT 1 FROM page_admin WHERE uid=me() AND page_id=' . APP_FB_ID, 
    ))); 
    foreach ((Array)$responses['data'] as $response) { 
     if($response['name'] == 'hasManagePerm') { 
      $hasManagePerm = !empty($response['fql_result_set'][0]['manage_pages']); 
     } else if($response['name'] == 'isAdmin') { 
      $isAdmin = !empty($response['fql_result_set']); 
     } 
    } 
} catch (Exception $ex) { 

} 

if(empty($hasManagePerm)) { 
    throw new AdminPanelAccessRestrictedException("perm"); 
} 

if(empty($isAdmin)) { 
    throw new AdminPanelAccessRestrictedException("admin"); 
} 

ГДЕ APP_FB_ID - идентификатор приложения

0

Если вам не нравится объекты Graph, вы всегда можете использовать FQL

fql?q=SELECT uid, page_id, type FROM page_admin WHERE page_id = {pageId}

возвращает это:

{ 
    "data": [ 
    { 
     "uid": "6905135096", 
     "page_id": "{pageId}", 
     "type": "ATHLETE" 
    }, 
    { 
     "uid": "14408356540", 
     "page_id": "{pageId}", 
     "type": "ATHLETE" 
    }, 
    { 
     "uid": "51936644133", 
     "page_id": "{pageId}", 
     "type": "ATHLETE" 
    }, 
    { 
     "uid": "7230226073", 
     "page_id": "{pageId}", 
     "type": "ATHLETE" 
    } 
    ] 
} 
-1

@ Ссылка Sarim's '/ admins' устарела после Graph API 2.1.
FB Graph API 2.2 и выше используют '/ role'

Смежные вопросы