1
0
Fork 0
mirror of https://github.com/omniauth/omniauth.git synced 2022-11-09 12:31:49 -05:00
omniauth--omniauth/lib/omni_auth/strategies/twitter.rb

45 lines
No EOL
1.3 KiB
Ruby

require 'json'
module OmniAuth
module Strategies
# A convenience wrapper on AuthElsewhere::OAuth to allow you
# to declare Twitter more simply.
#
# Usage:
#
# use AuthElsewhere::Twitter, 'consumerkey', 'consumersecret'
#
class Twitter < OmniAuth::Strategies::OAuth
def initialize(app, consumer_key, consumer_secret)
super(app, :twitter, consumer_key, consumer_secret,
:site => 'https://api.twitter.com')
end
def auth_hash
OmniAuth::Utils.deep_merge(super, {
'uid' => @access_token.params[:user_id],
'user_info' => user_info,
'extra' => {'user_hash' => user_hash}
})
end
def user_info
user_hash = self.user_hash
{
'nickname' => user_hash['screen_name'],
'name' => user_hash['name'],
'location' => user_hash['location'],
'image' => user_hash['profile_image_url'],
'screen_name' => user_hash['screen_name'],
'description' => user_hash['description'],
'urls' => {'Website' => user_hash['url']}
}
end
def user_hash
@user_hash ||= JSON.parse(@access_token.get('/1/account/verify_credentials.json').body)
end
end
end
end