проверьте, есть ли у пользователя права администратора для данной фан-страницы для синхронизации событий с помощью Facebook Graph API

Я хочу синхронизировать события на фан-страницах пользователей от их имени. Для этого сначала я подтвердил, что у пользователя есть права администратора для данной страницы. Я гуглю, но не могу понять, как я проверил, что у этого пользователя есть права администратора для данной страницы.

У кого-нибудь есть идеи??


person usman    schedule 19.08.2010    source источник


Ответы (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;
    }
}

Ваше здоровье

person ppiatkowski    schedule 31.07.2011

Вот какой-то немного хромой код, чтобы сделать это. Предупреждение. Получение списка страниц занимает почти секунду.

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);
}
person Edward    schedule 10.01.2011