Вкладка iframe на Facebook подписанный запрос всегда пуст - PullRequest
17 голосов
/ 10 марта 2011

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

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

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

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

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

-Seth

Ответы [ 5 ]

40 голосов
/ 10 марта 2011

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

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

8 голосов
/ 02 сентября 2011

По сути, проблема в том, что ваш веб-сервер выполняет перенаправление при получении запроса. В вашем случае это перенаправление с 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 постданные.

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

4 голосов
/ 31 марта 2011

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

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

4 голосов
/ 14 марта 2011

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

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

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

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

0 голосов
/ 18 февраля 2012

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

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