Facebook iframe tab подписали запрос всегда пустым
Я работаю над вкладкой приложения Facebook и хотел бы использовать подписанный пакет запросов, как описано здесь:
http://developers.facebook.com/blog/post/462/
Я пытаюсь использовать их примерный код, чтобы распаковать подписанный запрос, который предположительно передан на вкладку, однако $_POST
, $_GET
и $_REQUEST
всегда пусты.
Точный код работает на странице холста, и я могу разобрать подписанный запрос.
Есть ли что-то, что мне не хватает в их недавнем объявлении?
Кстати, приложение не опубликовано на рынке, а фан-страница, на которой установлена моя вкладка, является частной. Будет ли это иметь значение?
-Seth
Ответы
Ответ 1
Хорошо, понял!
При настройке приложения я заполнил "URL-адрес вкладки" как "вкладка/",
Это сделало полный URL-адрес на вкладке " http://www.example.com/myfacebookapp/tab/"
Это имело смысл для меня.
По-видимому, Facebook это не нравится. После изменения моего "URL-адреса вкладки" на "tab/index.php" подписанный запрос начал отображаться на вкладке приложения!
Ответ 2
По сути, проблема в том, что ваш веб-сервер выполняет перенаправление при получении запроса. В вашем случае он перенаправляется из 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), а no signed_request
postdata будет предоставлена вашему script.
Очень расстраивает; Я просто потратил полтора часа на отладку, почему мое тестовое приложение работало, а производство - нет. Чтобы ухудшить ситуацию, я знал этот ответ, он просто не зарегистрировал, что это была проблема. Очень раздражает!
Ответ 3
Спасибо Сет. У меня была такая же проблема. Я мог бы получить подписанный запрос на странице холста приложения, но не на вкладке моей страницы. Для уточнения
- перейдите на сайт www.facebook.com/developers/
- нажмите на параметры редактирования для своего приложения.
- перейдите на вкладку Интеграция с Facebook.
- внизу в разделе "Вкладки страницы" в поле "URL-адрес вкладки" введите путь к странице index.php для целевой страницы вашего facebook
ех. если ваша страница находится по адресу www.foobar.com/facebook/tab/index.php, вам нужно поставить "tab/index.php" (без кавычек), а не просто "tab/"
пытался понять это в течение нескольких дней!
Ответ 4
Я нашел решение:
Просто поставьте "/" в конце URL-адреса вкладки.
Например: "http://domain.us/facebook/tab/"
Это сработало для меня, сообщите нам, работает ли оно и для вас!
Ответ 5
После аутентификации с помощью приложения вы получите данные signed_request,
Аутентификация, как в приведенных ниже URL