Facebook перенаправить приложение с листа холста на страницу поклонников

im создает приложение facebook как приложение iframe на странице поклонников. Моя проблема на данный момент следующая: я добавил диалог запроса в facebook (http://developers.facebook.com/docs/reference/dialogs/requests), и все идет хорошо, за исключением одного: когда пользователь получает уведомление, ссылки идет на страницу холста, а не на страницу поклонников (где я бы хотел пойти...)

Так как я не могу убедить facebook добавить некоторую функциональность (это было бы здорово), им нужен способ автоматической переадресации с страницы холста приложения на страницу поклонников, где это приложение добавляется как вкладка iframe.

Я надеюсь, что кто-то поймет, что я хочу сделать...:)

спасибо, Питер

Ответы

Ответ 1

Если вы правильно поняли, вы можете сделать это:

top.location.href='http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID'

или вы можете использовать заголовок для перенаправления на этот URL-адрес. Это перенаправит вкладку приложения на странице вашего поклонника.

Ответ 2

Я также хотел удостовериться, что пользователи просматривают мое приложение Facebook через вкладку "Страница Facebook" (а не через страницу "Facebook" или непосредственно просматривают фактический сайт). Мне удалось достичь этого с помощью этого Javascript в теге <script> в head моего документа (протестированы Mac/PC FF, Chrome, Opera, IE6-8, Safari).

<script type="text/javascript">
  function NotInFacebookFrame() {
    return top === self;
  }
  function ReferrerIsFacebookApp() {
    if(document.referrer) {
      return document.referrer.indexOf("apps.facebook.com") != -1;
    }
    return false;
  }
  if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
    top.location.replace("http://permalink-to-my-facebook-page-tab");
  }
</script>

Ответ 3

Мое приложение довольно динамично, и я никогда не знаю, на какой странице он был добавлен. Поэтому, когда я использовал URL 'http://www.facebook.com/YOUR_PAGE_NAME?sk=app_YOUR_APP_ID', он перенаправлял меня только на страницу, но не на вкладку приложения. Что я делаю:

1) Я получаю идентификатор страницы из signed_request (зашифрованный в параметре base64url, который ваше приложение получает, когда кто-то приходит на страницу, поэтому вам нужно его расшифровать и выбрать значение id из объекта страницы JSON)

2) Затем я получаю данные страницы из https://graph.facebook.com/PAGE_ID_YOUR_GET. Вы получаете объект JSON с некоторыми данными страницы в ответ в формате JSON.

3) Только после пункта 2 я получаю "ссылку" значение страницы из ответа. Это как http://www.facebook.com/pages/Some-Page-Name

4) И, наконец, я добавляю ссылку "? sk = app_YOUR_APP_ID" на ссылку страницы.

Возможно, это слишком сложно, но это единственный способ, которым я работал у меня, как я ожидал (перенаправляя именно на вкладку приложения страницы).

Ответ 4

<script type="text/javascript">
  function NotInFacebookFrame() {
    return top === self;
  }
  function ReferrerIsFacebookApp() {
    if(document.referrer) {
      return document.referrer.indexOf("apps.facebook.com") == -1;
    }
    return false;
  }
  if (NotInFacebookFrame() || ReferrerIsFacebookApp()) {
    top.location.replace("http://permalink-to-my-facebook-page-tab");
  }
</script>