Skip to content

Instantly share code, notes, and snippets.

@mazikwyry
Created September 20, 2016 06:13
Show Gist options
  • Save mazikwyry/15198f6a1651eb66e24600e3a6b53f22 to your computer and use it in GitHub Desktop.
Save mazikwyry/15198f6a1651eb66e24600e3a6b53f22 to your computer and use it in GitHub Desktop.
def twitter_async_connect cookie, current_user=nil, country_code = nil
oauth_token, outh_token_secret = SocialProvider::Manager.oauth_tokens_from_access_token(cookie[:twitter_oauth_token])
twitter_user = Twitter::REST::Client.new do |config|
config.consumer_key = ENV['TWITTER_KEY']
config.consumer_secret = ENV['TWITTER_SECRET']
config.access_token = oauth_token
config.access_token_secret = outh_token_secret
end
user = twitter_user.user
omiauth = User.oauth_object({
provider: "twitter",
id: user.id,
first_name: user.name.split(" ").first,
last_name: user.name.split(" ")[1..5].join(" "),
token: oauth_token,
nickname: user.screen_name,
secret: outh_token_secret
})
user = User.find_for_oauth(omiauth, current_user, cookie, country_code)
end
def facebook_async_connect(cookie, current_user=nil, country_code = nil)
oauth_token = exchange_facebook_token(cookie[:facebook_oauth_token]).access_token
user = FbGraph2::User.me(oauth_token).fetch
omiauth = User.oauth_object({
provider: "facebook",
id: user.identifier,
email: user.email,
first_name: user.first_name,
last_name: user.last_name,
token: oauth_token
})
user = User.find_for_oauth(omiauth, current_user, cookie, country_code)
end
def oauth_object(options={})
{
"provider"=>options[:provider],
"uid"=>options[:id],
"info"=>
{
"email"=>options[:email],
"nickname"=>options[:nickname],
"first_name"=>options[:first_name],
"last_name"=>options[:last_name]
},
"credentials"=>{
"token"=>options[:token],
"secret"=>options[:secret]
}
}
end
def exchange_facebook_token(token)
auth = FbGraph2::Auth.new(ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'])
auth.fb_exchange_token = token
auth.access_token!
end
def facebook_token_valid?(token)
FbGraph2::Auth.new(ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET']).debug_token!(token).is_valid
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment