I'm building something like a multi-twitter-feed-manager, using the TwitterOauth plugin to handle authorization with Twitter. Before redirecting to Twitter, I add some data to the session. When Twitter redirects to the callback, the session is empty. Can anyone explain this?
Here's the controller.
class TwitterAuthorizationsController < ApplicationController def new @authorization = TwitterAuthorization.new @authorization.request @authorization.prepare_session session
#this correctly prints out the session puts "TwitterAuthorizationsController#new session # {session.to_json}"
redirect_to @authorization.url end
def callback #and here it's empty puts "TwitterAuthorizationsController#callback session # {session.to_json}"
@authorization = TwitterAuthorization.new @authorization.authorize session
@authorization.save end end
And here's the model:
class TwitterAuthorization < ActiveRecord::Base has_many :twitter_authentications
def initialize @client = TwitterOAuth::Client.new(:consumer_key => '**********************',:consumer_secret => '******************') end
def request @request_token = @client.request_token(:oauth_callback => 'http:// 0.0.0.0:3000/oauth_callback') end
def authorize session puts "DEBUG session #{session.to_json}" @access_token = @client.authorize( session[:request_token], session[:request_token_secret], :oauth_verifier => params [:oauth_verifier]) if @client.authorized? access_token = @access_token.token secret_token = @access_token.secret end end
def prepare_session session session[:request_token] = @request_token.token session[:request_token_secret] = @request_token.secret end
def url @request_token.authorize_url end end
Thanks!
-Andrew