require "oauth"

@consumer_key = <your-consumer-key>
@consumer_secret = <your-consumer-secret>

@consumer = OAuth::Consumer.new(@consumer_key, @consumer_secret, 
{ 
:site => 'https://api.login.yahoo.com', 
:request_token_path => '/oauth/v2/get_request_token', 
:access_token_path => '/oauth/v2/get_token', 
:authorize_path => '/oauth/v2/request_auth', 
:signature_method => 'HMAC-SHA1', 
:oauth_version => '1.0' 
}) 

@request_token = @consumer.get_request_token( 
{:oauth_callback => 'oob'} 
) 

p @request_token
# visit @request_token.options[:xoauth_request_auth_url] using a browser and enter
# the code returned below
@oauth_verifier = gets.chomp!
@access_token = @request_token.get_access_token(:oauth_verifier => @oauth_verifier) 
puts ""
p @access_token
@response =  @access_token.request(:get, 'http://social.yahooapis.com/v1/user/' + @access_token.params[:xoauth_yahoo_guid] + '/contacts', { 'Content-Type' => 'application/xml' })
puts "Response:"
p @response.body # your Yahoo! mail contacts in XML