В моем приложении Facebook для canvas / iframe есть простая форма, и я пытаюсь передать значения как POST. Теперь от прочтения всего этого по всему С.О. и в последних документах FB, насколько я понимаю, все данные, отправленные через форму POST, могут быть доступны на принимающей стороне из объекта $ _REQUEST.
Я тоже читаю в другой ветке о С.О. что для того, чтобы POST-формы работали, вам нужно передать вход с именем Sign_request со значением в качестве текущего Sign_request (у меня есть подписанный запрос, работающий нормально в противном случае ... все элементы входа и аутентификации работают нормально). Это нигде не упоминается в официальных документах FB.
Так что моя проблема в том, что все, что возвращается в объекте $ _REQUEST, это подписанный запрос и куча других сессионных вещей. Мои входные данные нигде не найдены.
Единственный способ, которым я могу их прочитать, - установить метод формы на «ЗАПРОС», который даже не является методом реальной формы. Но затем он берет все мои входные данные и отправляет их в виде аргументов GET в URL. Какой ужас. Вот пример страницы из моего приложения Canvas с формой, которую я использую, чтобы попытаться отладить (опуская все аутентификационные данные):
<form enctype="application/x-www-form-urlencoded" method="POST" target="_top" id="my_form" action="https://apps.facebook.com/myfakeapp/form_test.php">
<input type="text" name="test1" value="58" />
<input type="text" name="test2" value="123" />
<input type="text" name="test3" value="434" />
<input type="text" name="test4" value="645" />
<input type="text" name="signed_request" value="<? echo $_REQUEST['signed_request']; ?>">
<input value="Submit Answers" type="submit">
</form>
Документы FB вводят в заблуждение, поскольку некоторые из них относятся к этому бета-режиму миграции, который они использовали для более старых приложений, работающих с запросами POST для приложений Canvas.