Skip to content

Instantly share code, notes, and snippets.

@shanlalit
Forked from technoweenie/oauth2_example.rb
Created May 4, 2010 14:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shanlalit/389500 to your computer and use it in GitHub Desktop.
Save shanlalit/389500 to your computer and use it in GitHub Desktop.
# see http://github.com/intridea/oauth2
require 'rubygems'
require 'sinatra'
require 'oauth2'
require 'json'
class ConnectionLogger < Faraday::Middleware
def call(env)
env[:response].on_complete do |env|
puts "RESULT: #{env[:status]}\n#{env[:body]}"
end
process_body_for_request(env)
puts "#{env[:method].inspect} #{env[:url].to_s}"
puts env[:request_headers].inspect if !env[:request_headers].empty?
puts env[:body] if env[:body]
@app.call env
end
end
$client = OAuth2::Client.new('120094574673767', 'b54dc82476af2814e620b86776c42c0e', :site => 'https://graph.facebook.com', :adapter => :test)
$client.connection.build do |b|
b.use ConnectionLogger
b.adapter :net_http
end
get '/auth/facebook' do
url = $client.web_server.authorize_url(
:redirect_uri => redirect_uri,
:scope => 'email,offline_access'
)
puts "Redirecting to URL: #{url.inspect}"
redirect url
end
get '/auth/facebook/callback' do
access_token = $client.web_server.access_token(params[:code], :redirect_uri => redirect_uri)
user = JSON.parse(access_token.get('/me'))
user.inspect
end
def redirect_uri
uri = URI.parse(request.url)
uri.path = '/auth/facebook/callback'
uri.query = nil
uri.to_s
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment