Как определить, открывают ли пользователи мое приложение Facebook в iframe или по прямой ссылке - PullRequest
4 голосов
/ 05 марта 2011

Допустим, URL-адрес моего приложения Facebook составляет http://fb.domain.com/, а URL-адрес приложения http://apps.facebook.com/demoapp/

Теперь я хочу, чтобы пользователь не мог открыть URL-адрес приложения напрямую и должен войти в iframe на Facebook.

Как мне обнаружить и перенаправить ссылку на http://apps.facebook.com/demoapp/, если пользователь откроет ссылку напрямую?

Дайте мне знать ключ.

Ответы [ 2 ]

11 голосов
/ 05 марта 2011

Если вы просто пытаетесь определить, открыл ли пользователь ваш URL внутри iframe, с включенным javascript, вы можете сделать:

if (window!=window.top) { /* I'm in a frame! */ }

Надеюсь, что ответит на ваш вопрос.

8 голосов
/ 06 марта 2011

Проверка на if (window!=window.top) сообщает вам только, открыто ли ваше приложение в iframe или нет. Однако это не говорит, если это iframe FaceBook. При открытии приложения в iframe FaceBook (например, http://apps.facebook.com/demoapp/) FaceBook отправляет параметр signed_request. Если этот параметр действителен, вы можете смело предполагать, что запрос поступил из фрейма FaceBook. Если не перенаправить на правильную страницу приложения с:

<script type="text/javascript">
    top.location.href = "http://apps.facebook.com/demoapp/";
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...