it-swarm.com.ru

Вкладка iframe на Facebook подписанный запрос всегда пуст

Я работаю над вкладкой приложения Facebook и хотел бы использовать подписанный пакет запросов, как описано здесь: http://developers.facebook.com/blog/post/462/

Я пытаюсь использовать их пример кода для распаковки подписанного запроса, который предположительно передается на вкладку, однако $_POST, $_GET и $_REQUEST всегда все пустые.

Точный код работает на странице холста, и я могу проанализировать подписанный запрос.

Есть ли что-то, чего мне не хватает в их недавнем объявлении?

Кстати, приложение не публикуется на торговой площадке, и фан-страница, на которой установлена ​​моя вкладка, является частной. Будет ли это иметь значение?

-Seth

17
Seth Brown

Ладно, разобрался! При настройке приложения я заполнил "URL-адрес вкладки", чтобы он был "tab /". Это позволило сделать полный URL-адрес страницы вкладки "http: //www.example .com/myfacebookapp/tab / "Это имело смысл для меня.

Видимо, Facebook это не нравится. После изменения моего "URL-адреса вкладки" на "tab/index.php" подписанный запрос начал появляться на вкладке приложения!

40
Seth Brown

По сути, проблема в том, что ваш веб-сервер выполняет перенаправление при получении запроса. В вашем случае он перенаправляет с http://www.example.com/myfacebookapp/tab/ на http://www.example.com/myfacebookapp/tab/index.php ; в моем случае это было перенаправление с http://www.example.com/myfacebookapp/tab на http://www.example.com/myfacebookapp/tab/ ( мое приложение встроено в .Net MVC, поэтому не имеет имен файлов, но, по-видимому, нуждается в конце.

Таким образом, каноническое решение состоит в том, чтобы убедиться, что путь в поле URL-адреса вкладки является фактическим URL-адресом, а не тем, на который веб-сервер будет перенаправлять. Если веб-сервер должен выполнить перенаправление, то реальная страница выбирается GET (не POST), и постданные signed_request не передаются в ваш скрипт.

Очень расстраивает; Я потратил полтора часа на отладку того, почему мое тестовое приложение работало, а производственное - нет. Что еще хуже, я знал этот ответ, он просто не заметил, в чем проблема. Очень раздражает!

8
Owen Blacker

Я нашел решение: просто поместите "/" в конце URL-адреса вкладки. Как: "http://domain.us/facebook/tab/"

Это сработало для меня, дайте нам знать, если это также работает для вас!

4
Michael Ionita

Спасибо, Сет, у меня была такая же проблема. Я мог получить подписанный запрос на странице холста приложения, но не на вкладке своей страницы. В целях разъяснения

  1. перейти к www.facebook.com/developers/
  2. нажмите на изменить настройки для вашего приложения
  3. нажмите вкладку Интеграция с Facebook
  4. внизу в разделе "Вкладки страницы" в поле "URL-адрес вкладки" введите путь к странице index.php для целевой страницы Facebook.

ех. если ваша страница находится по адресу www.foobar.com/facebook/tab/index.php, вам нужно поставить "tab/index.php" (без кавычек), а не просто "tab /"

Пытался понять это в течение нескольких дней!

4
Devin Crossman

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

0
sadik