| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- module Oauth
- class Twitter
- attr_reader :access_token, :formatted_account_info, :twitter_account
- def initialize params
- @client = TwitterOAuth::Client.new( consumer_key: ENV['TWITTER_KEY'], consumer_secret: ENV['TWITTER_SECRET'])
- @params = params
-
- if params[:oauth_token] && params[:oauth_verifier]
- get_access_token
- elsif params[:twitter_token]
- get_account
- format_account_info
- end
- end
- def request_token
- if @request_token.blank?
- @token = @client.request_token(oauth_callback: "#{ENV['ANGULAR_SITE_URL']}")
- $redis.set(@token.token, @token.secret)
- @request_token = @token.token
- else
- @request_token
- end
- end
- def get_access_token
- @access_token = @client.authorize(
- @params[:oauth_token], $redis.get(@params[:oauth_token]),
- oauth_verifier: @params[:oauth_verifier]
- )
- $redis.set(@access_token.token, @access_token.secret)
- @access_token = @access_token.token
- end
- def get_account
- @twitter_account = TwitterOAuth::Client.new(
- consumer_key: ENV['TWITTER_KEY'],
- consumer_secret: ENV['TWITTER_SECRET'],
- token: @params[:twitter_token],
- secret: $redis.get(@params[:twitter_token])
- )
- end
- def authorized?
- @authorized ||= @twitter_account.authorized?
- end
- def format_account_info
- twitter_profile = @twitter_account.info
- begin
- website = twitter_profile["entities"]["url"]["urls"][0]["expanded_url"]
- rescue
- end
- @formatted_account_info = {
- provider: 'twitter',
- uid: twitter_profile["id"],
- name: twitter_profile["name"],
- description: twitter_profile["description"],
- website: website,
- token: @params[:twitter_token],
- secret: $redis.get(@params[:twitter_token]),
- image_url: twitter_profile["profile_background_image_url"],
- twitter_profile: "http://www.twitter.com/#{twitter_profile['screen_name']}"
- }
- end
- end
- end
|