[Ruby on Rails] Facebook外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる方法

Ruby on Rails にて、Facebookアプリ外でのアクセスをFacebookページ内のアプリヘリダイレクトさせる処理を書いてみました。

before_filter :check_access_from_facebook
 
def check_access_from_facebook
  redirect_to MyRailsApp::Application.config.facebook_app_url if params[:signed_request].nil?
end

Facebookアプリは、Facebookのサイト内でアクセスがあった場合、必ずリクエストパラメータに signed_request が存在します。

なので、これがない場合はFacebook外でのアクセスというように判断して、Facebookページ内のアプリへリダイレクトさせるようにしました。

signed_request から取得したパラメータに依存した実装になっていると、Facebook外で単独のWebアプリとして正常に動作しないので、今回はリダイレクトさせることで解決しました。

以上です。

【参考】

Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url – memo.yomukaku.net はてなブックマーク - Railsのcontrollerやviewの中で現在処理中のURLを知る方法: request.url - memo.yomukaku.net