Правильный способ перенаправить на вкладку facebook после аутентификации для приложения? - PullRequest
3 голосов
/ 08 июня 2011

Мы размещаем PHP-приложение для холста на Facebook (http://apps.facebook.com/myapp).На одной из страниц (http://apps.facebook.com/myapp/foobar) требуется авторизация с Facebook, чтобы мы могли получить доступ к некоторой информации о пользователе.Это достигается с помощью метода $facebook->getLoginUrl() PHP-SDK для генерации URL-адреса для аутентификации и работает как положено.

С тех пор мы добавили приложение в качестве вкладки (iFrame) на нашу страницу (http://www.facebook.com/MyPage?sk=app_nnnnn)).Теперь, когда мы пытаемся аутентифицировать пользователя, они перенаправляются на URL-адрес приложения (http://apps.facebook.com/myapp/foobar), а не на загрузку страницы /foobar в iFrame вкладки, как ожидалось.

Можно ли установить аутентификацию такчто он не возвращается в URL приложения, а остается во вкладке с помощью PHP-SDK?Если да, то каков рабочий процесс, которому я должен следовать, чтобы достичь этого?

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Я бы просто добавил код к http://apps.facebook.com/myapp/foobar для проверки подлинности, и если это так, echo:

<script type="text/javascript">
    top.location.href = 'http://www.facebook.com/MyPage?sk=whatever';
</script>

Это должно вырваться из iframe и перенаправить вас туда, куда вы хотите перейти.

0 голосов
/ 09 июня 2011

Я достиг этого, выполнив следующие действия:

  • На странице /myapp/foobar я проверяю, прошел ли аутентификация пользователя.Если они не установлены, я устанавливаю значение сеанса и использую PHP-SDK $facebook->getLoginUrl() для генерации URL-адреса аутентификации и отправки ответа, содержащего только javascript для перенаправления window.top.
  • После того, как они аутентифицированыони перенаправлены обратно на главную страницу.Когда эта страница загружается, она проверяет значение сеанса и, если установлено, удаляет его и выдает заголовок перенаправления на /myapp/foobar.

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

...