キャンバス/iframe Facebook アプリに単純なフォームがあり、値を POST として渡そうとしています。SO と FB の最新のドキュメント全体を読んで、私が理解しているように、POST フォームを介して送信されたすべてのデータは、受信側で $_REQUEST オブジェクトからアクセスできます。
また、SO の別のスレッドで、POST フォームが機能するためには、現在の signed_request として値を持つ「signed_request」という名前の入力を渡す必要があることを読みました (それ以外の場合は、署名された要求が正常に機能しています...すべてのログインと認証正常に動作するもの)。これは、公式の FB ドキュメントのどこにも言及されていません。
したがって、私の問題は、 $_REQUEST オブジェクトに返されるのは、署名されたリクエストと、その他のセッションのものだけです。フォーム入力がどこにも見つかりません。
私がそれらを読むことができる唯一の方法は、フォームのメソッドを「REQUEST」に設定することです。これは実際のフォームメソッドでさえありません。しかし、その後、すべての入力を受け取り、それらを URL の GET 引数として送信します。最悪。これは、デバッグを試みるために使用しているフォームのみを含むキャンバス アプリのサンプル ページです (すべての認証要素を省略しています)。
<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 要求を処理する古いアプリ用のこのベータ移行モードに言及しているため、混乱しています。