class RightSignature::OauthConnection
Attributes
Public Class Methods
Creates new instance of RightSignature::OauthConnection
to make API calls
-
creds: Hash of credentials for OAuth.
-
Hash keys for OAuth:
-
:consumer_key
-
:consumer_secret
-
:access_token
-
:access_secret
-
-
Example:
@rs_oauth = RightSignature::OauthConnection.new(:consumer_key => "ckey", :consumer_secret => "csecret", :access_token => "atoken", :access_secret => "asecret")
# File lib/rightsignature/connection/oauth_connection.rb, line 17 def initialize(credentials={}) @consumer_key = credentials[:consumer_key] @consumer_secret = credentials[:consumer_secret] @oauth_access_token = credentials[:access_token] @oauth_access_secret = credentials[:access_secret] end
Public Instance Methods
Access token
# File lib/rightsignature/connection/oauth_connection.rb, line 42 def access_token check_credentials @access_token ||= OAuth::AccessToken.new(oauth_consumer, @oauth_access_token, @oauth_access_secret) end
Uses request token and given OAuth verifier to generate an access token. Requires a request token to be set.
-
oauth_verifier: OAuth verifier
# File lib/rightsignature/connection/oauth_connection.rb, line 74 def generate_access_token(oauth_verifier) raise "Please set request token with new_request_token" unless @request_token @access_token = @request_token.get_access_token(:oauth_verifier => oauth_verifier) @oauth_access_token = @access_token.token @oauth_access_secret = @access_token.secret @access_token end
Uses consumer to generate a request token.
-
o: options hash. Use this to set the :oauth_callback
# File lib/rightsignature/connection/oauth_connection.rb, line 59 def new_request_token(o = {}) @request_token = oauth_consumer.get_request_token(o) end
Oauth consumer
# File lib/rightsignature/connection/oauth_connection.rb, line 25 def oauth_consumer check_credentials unless @consumer_key && @consumer_secret @oauth_consumer ||= OAuth::Consumer.new( @consumer_key, @consumer_secret, { :site => "https://rightsignature.com", :scheme => :header, :http_method => :post, :authorize_path =>'/oauth/authorize', :access_token_path =>'/oauth/access_token', :request_token_path=>'/oauth/request_token' } ) end
Generates HTTP request with oauth credentials. Require access_token
to be set.
-
method: HTTP Method. Ex. ('get'/'post'/'delete'/'put')
-
options: OAuth::AccessToken options to pass. Last option should be headers
# File lib/rightsignature/connection/oauth_connection.rb, line 86 def request(method, *options) options.last ||= {} options.last["Accept"] ||= "*/*" options.last["content-type"] ||= "application/xml" self.access_token.__send__(method, *options) end
Replaces access token
-
access_token: access token key
-
access_secret: access token secret
# File lib/rightsignature/connection/oauth_connection.rb, line 51 def set_access_token(access_token, access_secret) @oauth_access_token = access_token @oauth_access_secret = access_secret @access_token = OAuth::AccessToken.new(oauth_consumer, @oauth_access_token, @oauth_access_secret) end
Sets request token.
-
request_token: request token key
-
request_token_secret: request token secret
# File lib/rightsignature/connection/oauth_connection.rb, line 67 def set_request_token(request_token, request_token_secret) @request_token = OAuth::RequestToken.new(oauth_consumer, request_token, request_token_secret) end
Private Instance Methods
Raises exception if OAuth credentials are not set.
# File lib/rightsignature/connection/oauth_connection.rb, line 96 def check_credentials raise "Please set #{RightSignature::Connection.oauth_keys.join(', ')}" unless has_oauth_credentials? end
Checks if OAuth credentials are set.
# File lib/rightsignature/connection/oauth_connection.rb, line 101 def has_oauth_credentials? [@consumer_key, @consumer_secret, @oauth_access_token, @oauth_access_secret].each do |cred| return false if cred.nil? || cred.match(/^\s*$/) end true end