перенаправить приложение facebook на URL-адрес холста, если URL-адрес хоста был получен напрямую - PullRequest
2 голосов
/ 20 марта 2012

У меня есть приложение Facebook на основе iframe, я просто хочу сделать так, чтобы каждый раз, когда кто-то нажимал на URL приложения, http://mysite.com должен перенаправляться на мой URL-адрес холста Facebook, для этого приложения говорилось: http://apps.facebook.com/mysite. Это кажется довольно легко, но, к сожалению, это не щелкает в моей голове

любая помощь будет оценена

EDIT

приложение в коде

EDIT

Htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

php_value error_reporting 7
php_flag display_errors On
php_value auto_prepend_file prepend.php

скажем, мой домен

http://abc.com/mysitefolder

ссылка на мое приложение в Facebook

http://apps.facebook.com/myappname

рассмотрите также преобразование http и https

также предлагает одно предложение, поскольку вы видите, что я использую prepend в htaccess, просто чтобы получить часовой пояс пользователя для какого-то материала с датой и временем, это нормально, я использую его таким образом? файл фактически устанавливает cookie для пользователя при первом посещении сайта за сеанс

С наилучшими пожеланиями Junaid

Ответы [ 3 ]

1 голос
/ 20 марта 2012

На любой странице холста для приложения из Facebook будет определено $_REQUEST['signed_request']. Вы можете проверить наличие этой переменной запроса и, если она не установлена, перенаправить на Facebook.

0 голосов
/ 20 марта 2012

Поскольку вы хотите перенаправить доменное имя в приложение, а не наоборот, тот факт, что приложение находится в iFrame, не имеет значения.

На мой взгляд, лучший способ сделать это - использовать .htaccess. Это означает, что вы можете использовать собственные URL-адреса, такие как mydomainname.com/mypagename/, которые будут перенаправлять на apps.facebook.com/myappname/mypagename/, чтобы упростить рекламу вашего приложения. Еще одним преимуществом является то, что вам не нужно полагаться на Javascript. Некоторые люди (очень небольшое количество) выключили его, но зачем разбирать весь код PHP, чтобы это сделать?

Итак, вы можете сделать корневой домен пустым и включить в файл .htaccess только следующее:

RewriteEngine on
RewriteRule ^$ http://www.mydomainname.com/ [R=301,L,QSA]
RewriteRule ^/(.*) http://www.mydomainname.com/$1 [R=301,L,QSA]

QSA также прикрепит параметры запроса к целевому URL, например, "? Ref = email".

Конечно, если вы храните код приложения в том же домене, в корне, вам не нужно ничего делать, просто подправьте код аутентификации.

Если это не работает для вас, пожалуйста, дайте нам более подробную информацию:

  • Где приложение "живет"
  • Если приложение находится на mydomainname.com, что произойдет, если вы получите прямой доступ к URL-адресу?
  • Как вы делаете аутентификацию?

Код помогает, очевидно.

Если mydomainname.com не является определенным для приложения, я бы рекомендовал разместить собственное приложение на поддомене. На самом деле, независимо от того, должен помочь вам организовать. Или вы можете захотеть сделать приложение доступным как веб-сайт, с опцией входа в Facebook.

Приветствия

0 голосов
/ 20 марта 2012

ну, насколько я знаю, для этого не существует серверного кодирования ... опять же, как это может быть, поскольку все это происходит на фронте того, что вы могли бы сделать, используя javascript, например, так:

if(window!=window.top){i am iframed now redirect or w/e you wanna do}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...