Приложение на вкладке страницы, перенаправляющее пользователя на страницу с ограниченным доступом при аутентификации - PullRequest
1 голос
/ 02 февраля 2012

Я могу использовать следующий код, чтобы перенаправить пользователя обратно на страницу, на которой установлено мое приложение, используя следующий код:

$facebook = new Facebook(array(
  'appId' => $app_id,
  'secret' => $app_secret,
  'cookie' => true
));
$signed_request = $facebook->getSignedRequest();
$page = $signed_request['page'];
$page_id = $page['id'];

$page_array = $facebook->api("/$page_id");
$page_link = $page_array['page_link'];

$redirect_uri = $page_link . '?sk=app_' . $app_id

$user = $facebook->getUser();
if(!$user) {
  $url = $facebook->getLoginUrl(array('redirect_uri' => $redirect_uri));
  echo "<script type='text/javascript'>top.location.href = '$url';</script>";
}

Это прекрасно работает для большинства страниц, но если страница имеет возрастные ограничения (и я не могу гарантировать, что все страницы, использующие мое приложение, не будут), $facebook->api("/$page_id"); возвращает false, потому что из того, что я могу собрать, мне нужны пользователи токен доступа, чтобы получить эту информацию, которую я не могу получить, пока я не аутентифицирую их! Есть ли способ обойти этот парадокс, или мне придется указывать своим пользователям, чтобы они не ограничивали возраст своих страниц?

UPDATE

Я понимаю, что могу просто перенаправить на facebook.com/$page_id, который вернет пользователя на страницу после аутентификации и избавит меня от необходимости делать запрос API для $page_link, но в идеале я бы хотел, чтобы они были перенаправлены в мои приложения вкладка страницы на этой странице, независимо от того, какая указана целевая вкладка по умолчанию.

...