Невозможно получить URL родительского фрейма из-за междоменной политики. И нет никакой возможности получить информацию о странице, на которой работает ваше приложение, на стороне клиента.
Но на стороне сервера вы можете восстановить URL страницы, используя данные, переданные в signed_request
. Для приложений на вкладках страниц он содержит page
:
Объект JSON, содержащий страницу id
string
, liked
boolean
(установите значение true
, если пользователю понравилась страница, false
, если нет) и admin
boolean
(установите на true
, если пользователь является администратором страницы, false
, если это не так).
Используя этот идентификатор страницы, вы можете создать URL страницы:
http://www.facebook.com/pages/-/PAGE_ID
Если вы хотите, чтобы ссылка на вкладку страницы в вашем приложении использовалась:
http://www.facebook.com/pages/-/PAGE_ID?v=app_APPLICATION_ID
Осторожно, HTTP_REFERRER
предоставляется клиентом и ему нельзя доверять, и его можно отключить с помощью плагина / прокси / и т. Д. *
Примечания:
Страницы могут иметь разные URL в реальной жизни, но при использовании этого метода пользователь получит правильную страницу, так как Facebook будет перенаправлять на правильный URL страницы.
Примеры URL используют схему HTTP
, не стесняйтесь использовать HTTPS
, если вам это нужно.
Например, в PHP вы можете определить текущую схему следующим образом:
$scheme = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']!=="off") ||
(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) &&
$_SERVER['HTTP_X_FORWARDED_PROTO']=="https")
) ? 'https' : 'http';