Facebook oauth не перенаправляет в фрейм Facebook - PullRequest
4 голосов
/ 27 июня 2011

Я столкнулся со странным поведением при реализации приложения Facebook с использованием метода холста iframe.

Я следую учебному пособию по http://developers.facebook.com/docs/guides/canvas/, которое до сих пор работает очень хорошо.

Страница, на которую я отправляю аутентификацию (как сказано в руководстве):

https://www.facebook.com/dialog/oauth?client_id=138548612888445&redirect_uri=http://localhost:8080/test/facebook/return.jsf

Однако, когда я принимаю приложение и разрешаю ему доступ к моим личным данным, меня перенаправляют прямо на страницу возврата в виде верхнего URL-адреса, который затем выглядит следующим образом:

+--------------------------------------------------+
|  My Content                                      |
|  http://localhost:8080/test/facebook/return.jsf  |
|  ?code=...
+--------------------------------------------------+

Однако я не хочу, чтобы мой URL отображался в самом верхнем фрейме, а внутри фрейма facebook по умолчанию:

+-------------------------------------------+
| Facebook header                           |
+--------------------------+----------------+
| My Content               | Facebook right |
|                          | column         |
+--------------------------+----------------+

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

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Установите URL своего приложения на Facebook в качестве URI перенаправления.В качестве альтернативы, сделайте все, что вам нужно сделать, в return.jsf, а затем перенаправьте пользователя на URL-адрес вашего приложения в Facebook.

1 голос
/ 04 сентября 2011

Если вы использовали:

 <script> top.location.href='$url'</script> 

, как я сделал, вам нужно изменить значение с top.location.href на self.location.href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...