Skip to content
Generic OAuth Client for Ruby, based on moomerman/twitter_oauth
Ruby
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
demos
lib
README.textile
oauth_client.gemspec

README.textile

Generic OAuth Client for Ruby, based on moomerman/twitter_oauth

NOTE: This is a very early version and has not been tested, give it some time :)

This is a core OAuth Client, extracting core elements from the an awesome moomerman/twitter_oauth gem and reorganizing them to give you tools to build your own client for an API of choice. This gem can be used to jump-start your new OAuth client.

Example:

require 'oauth_client'	
class TwitterOAuth < OAuthClient::Client
  site 'http://twitter.com'
end

That’s all you need to have a working OAuth client which you can use to authorize with an OAuth server. Of course, it won’t do anything just yet :) You need to implement specific methods for the API you’re working with.

You have a few helper methods to ease the trouble. OAuthClient#get and OAuthClient#post return the unparsed response from the server. It includes an adapter for JSON, which will parse the response prior to returning it. To use it, call OAuthClient#json.get or OAuthClient#json.post.

See this example from moomerman/twitter_oauth:

module TwitterOauth
  class Client
    [...]
    def user(page=1)
      oauth_response = access_token.get("/statuses/user_timeline.json?page=#{page}")
      JSON.parse(oauth_response.body)
    end
		[...]
  end
end

with OAuthClient, it would look like this:

require 'oauth_client'	
class TwitterOAuth < OAuthClient::Client
  site 'http://twitter.com'

  def user(page=1)
    json.get("/statuses/user_timeline.json?page=#{page}")
  end
end

Authors

This gem has been built by hacking and modifing the twitter_oauth gem by Richard Taylor (http://github.com/moomerman). The core client authorization structure is taken from there.

Banged together by Marcin Bunsch (http://github.com/marcinbunsch).

Something went wrong with that request. Please try again.