https://example.com
で利用できるように、Facebook アプリを Facebook アプリ キャンバスに埋め込んでいますhttps://apps.facebook.com/EXAMPLE
。https://example.com/messages/123
私のアプリケーションは、Facebook キャンバスに埋め込まれたページを開く必要があるなどのリンクを含む通知メールを送信します。どうすればこれを達成できますか? 私の現在の考え:
- ユーザーが開きます
https://example.com/messages/123
- パラメータのアプリケーション チェック
signed_request
- アプリケーションはユーザーをにリダイレクトします
https://apps.facebook.com/EXAMPLE/?requested_page=/messages/123
- アプリケーションはパラメーターをチェックし
requested_page
、このページにリダイレクトします - ユーザー
https://example.com/messages/123
に URL が表示され、キャンバスに埋め込まれます
これを機能させるためのより良いパターンはありますか?
私の最終的な作業ソリューション (Ruby on Rails を使用)
- ユーザーが開きます
https://example.com/messages/123
アプリがキャンバスに埋め込まれているかどうかをアプリケーションがクライアント側でチェックします。
if(window == top){ top.location = "https://apps.facebook.com/#{Settings.facebook.app_id}#{request.fullpath}"; }
ユーザーがリダイレクトされます
https://apps.facebook.com/EXAMPLE/messages/123
- アプリケーション ミドルウェアは、存在する場合に変換
POST
されます ( https://github.com/dekart/facebooker2/blob/master/lib/facebooker2/rack/post_canvas.rbから借用したコードとアイデア)GET
signed_request
アプリケーションは
signed_request
fb_graph gem で解析しますFbGraph::Auth.new(app_id, app_secret, :signed_request => params[:signed_request])