I think you got confused while getting callback. change your code as follows, You will surely get access token to make Yahoo API call.
@@access_token = nil
@@request_token = nil
def get_request_token
@@consumer = OAuth::Consumer.new('consumer key',
'secret key',
{
:site => 'https://api.login.yahoo.com',
:scheme => :query_string,
:http_method => :get,
:request_token_path => '/oauth/v2/get_request_token',
:access_token_path => '/oauth/v2/get_token',
:authorize_path => '/oauth/v2/request_auth'
})
@@request_token = @@consumer.get_request_token( { :oauth_callback => 'http://localhost:3000/callback' } )
session[:request_token]=@@request_token
redirect_to @@request_token.authorize_url
#redirect_to @@request_token.authorize_url( { :oauth_callback => 'http://localhost:3000/success' } )
end
def callback
request_token = ActiveSupport::JSON.decode(@@request_token.to_json)
if !(request_token.present?)
$request_token_value = "Response failed"
else
$request_token_value = request_token
end
# access_token = @@request_token.get_access_token({:oauth_verifier=>params[:oauth_verifier],:oauth_token=>params[:oauth_token]})
@@access_token = @@request_token.get_access_token(:oauth_verifier=>params[:oauth_verifier])
access_json = ActiveSupport::JSON.decode(@@access_token.to_json)
puts "****************************"
puts $access_json
puts "****************************"
end