module Spherebird
Public Instance Methods
config_file_path()
click to toggle source
# File lib/spherebird.rb, line 6 def config_file_path "config/twitter_oauth.yml" end
on_twitter_profile_update()
click to toggle source
# File lib/spherebird.rb, line 161 def on_twitter_profile_update end
profile_cache_lifetime()
click to toggle source
# File lib/spherebird.rb, line 10 def profile_cache_lifetime 1800 end
twitter()
click to toggle source
# File lib/spherebird.rb, line 111 def twitter return @twitter if @twitter Twitter.configure do |config| config.consumer_key = twitter_oauth_config['consumer_token'] config.consumer_secret = twitter_oauth_config['consumer_secret'] config.oauth_token = twitter_session_read(:access_token) config.oauth_token_secret = twitter_session_read(:access_token_secret) if twitter_oauth_config['proxy'] config.proxy = twitter_oauth_config['proxy'] end end @twitter = Twitter::Client.new end
twitter_logged_in?()
click to toggle source
# File lib/spherebird.rb, line 52 def twitter_logged_in? twitter_login_state == "logged_in" end
twitter_login_state()
click to toggle source
# File lib/spherebird.rb, line 48 def twitter_login_state twitter_session_read(:oauth_state) end
twitter_oauth()
click to toggle source
# File lib/spherebird.rb, line 60 def twitter_oauth if twitter_logged_in? redirect_to twitter_oauth_config['logged_in_url'] elsif twitter_authorized? @request_token = OAuth::RequestToken.new(twitter_oauth_consumer, twitter_session_read(:request_token), twitter_session_read(:request_token_secret)) begin @access_token = @request_token.get_access_token() rescue OAuth::Unauthorized => e twitter_session_clear redirect_to :controller => 'oauth', :action => 'index' return rescue => e raise e end twitter_session_write :access_token, @access_token.token twitter_session_write :access_token_secret, @access_token.secret twitter_session_write :oauth_state, "logged_in" redirect_to :controller => 'users', :action => 'profile' else request_token = twitter_oauth_consumer.get_request_token( :oauth_callback => twitter_oauth_config['callback_url'] ) twitter_session_clear twitter_session_write :request_token, request_token.token twitter_session_write :request_token_secret, request_token.secret redirect_to request_token.authorize_url end end
twitter_oauth_config()
click to toggle source
# File lib/spherebird.rb, line 14 def twitter_oauth_config if @twitter_oauth_config.nil? if File.exists?(config_file_path) twitter_oauth_configs = YAML::load_file(config_file_path) @twitter_oauth_config = twitter_oauth_configs[Rails.env] else raise <<-EXCEPTION Twitter-OAuth Configurate File (#{config_file_path}) is missing. Example: EXCEPTION end end @twitter_oauth_config end
twitter_oauth_consumer()
click to toggle source
# File lib/spherebird.rb, line 30 def twitter_oauth_consumer options = { :site => "http://twitter.com", :request_token_url => "https://api.twitter.com/oauth/request_token", :authorize_url => "https://api.twitter.com/oauth/authorize", :access_token_url => "https://api.twitter.com/oauth/access_token", } if twitter_oauth_config['proxy'] options[:proxy] = twitter_oauth_config['proxy'] end puts options OAuth::Consumer.new( twitter_oauth_config['consumer_token'], twitter_oauth_config['consumer_secret'], options ) end
twitter_oauth_request(oauth_token = nil)
click to toggle source
# File lib/spherebird.rb, line 104 def twitter_oauth_request (oauth_token = nil) if oauth_token.nil? || oauth_token == twitter_session_read(:request_token) twitter_session_write :oauth_state, "authorized" end twitter_oauth end
twitter_profile(options = {})
click to toggle source
options:
force_update (BOOL)
# File lib/spherebird.rb, line 131 def twitter_profile(options = {}) profile = twitter_session_read(:profile) expiry = twitter_session_read(:profile_expiry_date) if options[:force_update] || profile.nil? || expiry.nil? || (expiry - Time.now).to_i < 0 twitter_session_write(:profile_expiry_date, Time.now + profile_cache_lifetime) begin profile = twitter.verify_credentials rescue Twitter::Error::Unauthorized return nil end twitter_session_write(:profile, profile) on_twitter_profile_update end return profile end
twitter_session_clear()
click to toggle source
# File lib/spherebird.rb, line 157 def twitter_session_clear session[:twitter] = nil end
twitter_session_read(key)
click to toggle source
# File lib/spherebird.rb, line 147 def twitter_session_read (key) session[:twitter] ||= {} session[:twitter][key] end
twitter_session_write(key, value)
click to toggle source
# File lib/spherebird.rb, line 152 def twitter_session_write (key, value) session[:twitter] ||= {} session[:twitter][key] = value end