Я могу использовать следующий код, чтобы перенаправить пользователя обратно на страницу, на которой установлено мое приложение, используя следующий код:
$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
, но в идеале я бы хотел, чтобы они были перенаправлены в мои приложения вкладка страницы на этой странице, независимо от того, какая указана целевая вкладка по умолчанию.