1

短縮版

POSTFacebook が Web アプリケーションに対して実行しているリクエストから元のリクエスト メソッドを取得することは何とか可能ですか?

ロングバージョン

現在の Web アプリケーション Facebook キャンバス フレームを最低レベルで互換性を持たせたいと考えています。

Facebookキャンバスについて

Facebook のアプリは、Canvas フレームに読み込まれる Web ページです。ユーザーが Facebook で Canvas アプリを読み込むと、そのページの iframe 内に Canvas URL が読み込まれます。これにより、アプリは標準の Facebook クロム内に表示されます。

私はRubyプログラマーであり、Rack Middlewareはこの問題に対する合理的な解決策のようです。

ラックについて

Rack は、Ruby と Ruby フレームワークをサポートする Web サーバー間の最小限のインターフェースを提供します。

ラックミドルウェアについて

サーバーとフレームワークの間で、ラックはミドルウェアを使用してアプリケーションのニーズに合わせてカスタマイズできます

各ミドルウェアは、このオブジェクトと呼ばれるオブジェクトで初期化され、envある種のハッシュです。REQUEST_METHODHTTP リクエスト メソッドを表すキーが含まれています。

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

POSTFacebook が Web アプリケーションに対して実行しているリクエストから元のリクエスト メソッドを取得することは何とか可能ですか?

4

0 に答える 0