繁体   English   中英

如何获取Facebook页面的管理员用户ID?

[英]How can i get the admins user id of a page in facebook.?

如何使用grapg API获取Facebook中页面的管理员用户ID?

例如:这将提供页面肯德基的详细信息

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"
}

我需要获取页面admin的用户ID。 我已经检查了权限,但我不知道该如何获得。

第一:用户必须是该页面的管理员。

拥有“ manage_pages”权限,请求GET https://graph.facebook.com/[PAGE_ID]?fields=access_token作为响应,将获得页面管理员access_token。 现在,使用页面admin access_token来请求GET https://graph.facebook.com/[PAGE_ID]/admins

作为回应,您将获得管理员,他们的ID和用户名的列表。

参考: http : //developers.facebook.com/docs/reference/api/page/

您无法获得该应用程序的所有管理员用户,但可以测试任何uid。

首先,您需要授予'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");
}

WHERE APP_FB_ID-应用程序ID

如果您不喜欢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"
    }
  ]
}

Graph API 2.1之后,@ Sarim的'/ admins'链接已被弃用。
FB Graph API 2.2及更高版本使用'/ roles'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM