短縮版
POST
Facebook が Web アプリケーションに対して実行しているリクエストから元のリクエスト メソッドを取得することは何とか可能ですか?
ロングバージョン
現在の Web アプリケーション Facebook キャンバス フレームを最低レベルで互換性を持たせたいと考えています。
Facebookキャンバスについて
Facebook のアプリは、Canvas フレームに読み込まれる Web ページです。ユーザーが Facebook で Canvas アプリを読み込むと、そのページの iframe 内に Canvas URL が読み込まれます。これにより、アプリは標準の Facebook クロム内に表示されます。
私はRubyプログラマーであり、Rack Middlewareはこの問題に対する合理的な解決策のようです。
ラックについて
Rack は、Ruby と Ruby フレームワークをサポートする Web サーバー間の最小限のインターフェースを提供します。
ラックミドルウェアについて
サーバーとフレームワークの間で、ラックはミドルウェアを使用してアプリケーションのニーズに合わせてカスタマイズできます
各ミドルウェアは、このオブジェクトと呼ばれるオブジェクトで初期化され、env
ある種のハッシュです。REQUEST_METHOD
HTTP リクエスト メソッドを表すキーが含まれています。
Facebook はすべてのリクエスト メソッドを に変換しPOST
ます。POST
アプリケーションを Facebook Canvas コンテキストで動作させるには、アプリケーションにルートを追加する必要があります。
env['REQUEST_METHOD']
代わりに、元のリクエスト メソッドに書き直したいと思います。
調査中に、 rack-facebookという宝石を見つけました。
この宝石はまさに私が望むことをしています。params から抽出['fb_sig']['request_method']
し、に割り当てenv['REQUEST_METHOD']
ます。
悲しいことに、facebook dev blog でブログエントリも見つけました
すべての Canvas アプリは signed_request を処理する必要があります (fb_sig は削除されます)
2011 年 5 月 10 日午後 8 時 25 分
Facebook署名付きリクエストについて
特定のタイプのアプリでは、パーミッションが要求される前であっても、いくつかの追加情報フィールドを含む署名付き要求がアプリに渡されます。
Facebook 開発者用ドキュメントを調べたところ、リクエスト メソッドまたは類似のものがパラメーターの一部ではなくなっていることがわかりましたsigned_request
。
POST
Facebook が Web アプリケーションに対して実行しているリクエストから元のリクエスト メソッドを取得することは何とか可能ですか?