使用Facebook Graph ApI检查用户是否具有针对事件同步的给定粉丝页面的管理员权限

时间:2010-08-19 10:20:29

标签: facebook facebook-graph-api

我希望代表他们在用户的粉丝页面上进行事件同步。为此,我首先确认用户具有给定页面的管理员权限。 我谷歌,但我无法弄清楚我是如何检查该用户具有给定页面的管理员权限。

任何人都有想法??

2 个答案:

答案 0 :(得分:2)

如果您使用的是iframe应用程序页面,最好的方法是:

function parsePageSignedRequest() {
    if (isset($_REQUEST['signed_request'])) {
      $encoded_sig = null;
      $payload = null;
      list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
      $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
      $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true));
      return $data;
    }
    return false;
}

function userIsAdmin() {
    if($signed_request = parsePageSignedRequest()) {
        return ($signed_request->page->admin) ;
    }
    else {
        return false;
    }
}

干杯

答案 1 :(得分:0)

这是一些稍微蹩脚的代码。警告 - 检索页面列表需要几乎一秒钟。

if ($session)
{
  # Find out if we're an admin
  $adminpages = $facebook->api(array(
                                      'method' => 'fql.query',
                                      'query' => "SELECT page_id FROM page_admin WHERE uid='$uid'",
}

function isAdmin($thisid)
{
  global $adminpages;

  $pageadmin  = false;
  if ($adminpages)
  {
    foreach ($adminpages as $i => $page)
    {
      if ($page['page_id'] === $thisid)
      {
        $pageadmin = true;
      }
    }
  }

  return($pageadmin);
}