私は正常に動作するコードイグナイターアプリを持っています。Facebook キャンバス アプリを作成し、codeigniter によって生成されたページを読み込んでみました。うまくいきませんでした。そして、「あなたが要求したアクションは許可されていません」という恐ろしいメッセージが表示されました。私のFacebookアプリの設定が正しいことを確認するために、別のサイトのページで試してみましたが、うまくいきました.
考えられる問題の検索を開始したところ、cornfig 設定の CSRF protection=TRUE が原因であることがわかりました。したがって、CSRF保護をオフにして、機能するかどうかを確認しました。その後、それは機能し、実際に codeigniter で生成されたページを Facebook キャンバス アプリ (サンドボックス モードでは..) を介して読み込むことができました。
csrf トークンの隠しフィールドをハードコーディングすれば (form_open() 関数に依存する代わりに)、このルールを回避でき、そのロジックによって、フォームをまったく持たないページがあれば正常に動作するはずであると示唆する人もいました。また、フォームのないページでも読み込めませんでした。
そして、私はどこでもAJAXを使用していません。
CI 2.1.3 を使用しています。
1 つの関連リンク - http://ellislab.com/forums/viewthread/228160/#1038448 Stackoverflow や他のフォーラムにも同様の質問がたくさんありますが、満足のいく答えが見つかりませんでした。
Apache のログだけを見ると、CSRF 保護をオフにするのは良い考えだとは思えません。
では、CSRF保護をオフにせずに、codeignterで生成されたページをFacebookキャンバスアプリに表示するにはどうすればよいですか?
どんなポインタも役に立ちます。ありがとうございました。