Based on SOAuth: http://github.com/tofumatt/SOAuth
A simple OAuth library that supports OAuth header signing, and header verifying.
gem install roauth
Example Client:
uri = "https://twitter.com/direct_messages.json"
oauth = {
:consumer_key => "consumer_key",
:consumer_secret => "consumer_secret",
:access_key => "access_key",
:access_secret => "access_secret"
}
params = {
:count => "11",
:since_id => "5000"
}
oauth_header = ROAuth.header(oauth, uri, params)
http_uri = URI.parse(uri)
request = Net::HTTP.new(http_uri.host, http_uri.port)
request.get(uri.request_uri, {'Authorization', oauth_header})
Example Server:
oauth_header = ROAuth.parse(request.header['Authorization'])
# Implementation specific
consumer = Consumer.find_by_key(oauth_header[:consumer_key])
access_token = AccessToken.find_by_token(oauth_header[:access_key])
oauth = {
:consumer_secret => consumer.secret,
:access_secret => access_token.secret
}
ROAuth.verify(oauth, oauth_header, request.request_uri, params) #=> true/false