# もう Facebook にいるのですぐに認可画面を表示してほしい、という話
こんな感じで :iframe => true を追加してあげればよさげ。

Rails.application.config.middleware.use OmniAuth::Builder do
provider :facebook , FB_APP_ID, FB_APP_SECRET, :scope => 'status_update, publish_stream', :iframe => true
end
あと OmniAuth を使った場合、認可完了後のリダイレクト先が iframe 内のバックエンドのサーバー(僕の場合は Heroku )に直に向いてしまって、Facebook から別のサイトへ移動するという動きになってしまう。
OmniAuth.config.full_host を指定してあげればいいとかこのへんに書いてあるけど、Facebook では API の呼び出し元サイトの URL が事前登録してあるバックエンド( Heroku )の URL と一致している必要があるので、そもそも OmniAuth.config.full_host を Facebook アプリの URL にすることができないです。
# OmniAuth.config.full_host に Facebook のアプリの URL を指定すればよさそうだけど、API の呼び出しがそもそもできなくなる、という話
しょうがないので認可完了後にアプリページ全体をリロードするよう実装しました。ださいけど。

redirect_to "http://apps.facebook.com/XXXXXXXXXXXXXX/"
No comments :
Post a Comment