2

アプリケーションでのリダイレクト後にセッションが失われるという問題があります。Facebook と統合するために、gem "Koala" を使用しています。この gem は Rails 3.0 で正常に動作していましたが、Rails 3.2.12 にアップグレードしていません。Facebook へのリダイレクト後にセッションが消失するため、失敗しています。

私は同様の問題について多くのことを調査して読んでいますが、まだ解決策を得ることができませんでした. ここで重要なのは、次の 2 つのアクションです。

1) Publish_event アクションで、Koala オブジェクトを設定して Facebook に接続します。

def publish_event
   ...
   ...
   callback = url_for(......................)
   @oauth = Koala::Facebook::OAuth.new(Facebook::APP_ID, Facebook::SECRET, callback)
   session[:oauth] = @oauth

   redirect_to @oauth.url_for_oauth_code(:permissions => ["offline_access", "publish_stream", "manage_pages"])
end

その部分は正常に機能し、Facebook に正常に接続します。Facebook はアプリケーションにリダイレクトし、2 番目のアクションが呼び出されます。

2) 必要なメッセージを投稿する Facebook コールバック アクション:

def facebook_callback  
  token = session[:oauth].get_access_token(params[:code])
  @graph = Koala::Facebook::API.new(token)
  .....
end

ここでの問題は、Facebook へのリダイレクト後、セッションがロードされない (Rack::Session::Abstract::SessionHash:0x30027e4 がまだロードされていない) ため、作成した元の oauth Koala オブジェクトが必要なため、続行できないことです。 Facebookとの接続であり、それはセッションにあるはずです。

セッションを active_record_store として構成しましたが、アプリケーションの残りの部分でうまく機能するため、ここで非常に混乱しています。

誰も似たようなものに出くわしましたか? または、これを別の方法で行う方法について何か提案はありますか?

ありがとう !

4

0 に答える 0