Class: OauthToken
- Defined in:
- lib/authlogic_connect/oauth/tokens/oauth_token.rb
Direct Known Subclasses
FacebookToken, GetSatisfactionToken, GoogleToken, LinkedInToken, MyspaceToken, TwitterToken, VimeoToken, YahooToken
Class Method Summary collapse
-
.authorize_url(callback_url, &block) ⇒ Object
this is a cleaner method so we can access the authorize_url from oauth 1 or 2.
- .consumer ⇒ Object
-
.find_by_key_or_token(key, token, options = {}) ⇒ Object
if we’re lucky we can find it by the token.
- .get_access_token(oauth_verifier) ⇒ Object
-
.get_request_token(callback_url) ⇒ Object
if you pass a hash as the second parameter to consumer.get_request_token, ruby oauth will think this is a form and all sorts of bad things happen.
-
.get_token_and_secret(options = {}) ⇒ Object
this is a wrapper around oauth 1 and 2.
-
.key(value = nil, &block) ⇒ Object
unique key that we will use from the AccessToken response to identify the user by.
- .oauth_key ⇒ Object
- .oauth_version ⇒ Object
- .request_token(token, secret) ⇒ Object
-
.version(value) ⇒ Object
oauth version, 1.0 or 2.0.
Instance Method Summary collapse
Methods inherited from Token
client, config, #consumer, service_name, #service_name, #settings, settings
Class Method Details
.authorize_url(callback_url, &block) ⇒ Object
this is a cleaner method so we can access the authorize_url from oauth 1 or 2
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 103 def (callback_url, &block) if oauth_version == 1.0 request = get_request_token(callback_url) yield request if block_given? return request. else = {:redirect_uri => callback_url} [:scope] = self.config[:scope] unless self.config[:scope].blank? return consumer.web_server.() end end |
.consumer ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 50 def consumer unless @consumer if oauth_version == 1.0 @consumer = OAuth::Consumer.new(credentials[:key], credentials[:secret], config.merge(credentials[:options] || {})) else @consumer = OAuth2::Client.new(credentials[:key], credentials[:secret], config) end end @consumer end |
.find_by_key_or_token(key, token, options = {}) ⇒ Object
if we’re lucky we can find it by the token.
63 64 65 66 67 68 69 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 63 def find_by_key_or_token(key, token, = {}) result = self.find_by_key(key, ) unless key.nil? unless result result = self.find_by_token(token, ) unless token.nil? end result end |
.get_access_token(oauth_verifier) ⇒ Object
126 127 128 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 126 def get_access_token(oauth_verifier) request_token.get_access_token(:oauth_verifier => oauth_verifier) end |
.get_request_token(callback_url) ⇒ Object
if you pass a hash as the second parameter to consumer.get_request_token, ruby oauth will think this is a form and all sorts of bad things happen
121 122 123 124 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 121 def get_request_token(callback_url) = {:scope => config[:scope]} if config[:scope] consumer.get_request_token({:oauth_callback => callback_url}, ) end |
.get_token_and_secret(options = {}) ⇒ Object
this is a wrapper around oauth 1 and 2. it looks obscure, but from the api point of view you won’t have to worry about it’s implementation. in oauth 1.0, key = oauth_token, secret = oauth_secret in oauth 2.0, key = code, secret = access_token
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 76 def get_token_and_secret( = {}) oauth_verifier = [:oauth_verifier] redirect_uri = [:redirect_uri] token = [:token] secret = [:secret] if oauth_version == 1.0 access = request_token(token, secret).get_access_token(:oauth_verifier => oauth_verifier) result = {:token => access.token, :secret => access.secret, :key => nil} if self.oauth_key if oauth_key.is_a?(Proc) result[:key] = oauth_key.call(access) else result[:key] = access.params[self.oauth_key] || access.params[self.oauth_key.to_s] # try both end else puts "Access Token: #{access.inspect}" raise "please set an oauth key for #{service_name.to_s}" end else access = consumer.web_server.get_access_token(secret, :redirect_uri => redirect_uri) result = {:token => access.token, :secret => secret, :key => nil} end result end |
.key(value = nil, &block) ⇒ Object
unique key that we will use from the AccessToken response to identify the user by. in Twitter, its “user_id”. Twitter has “screen_name”, but that’s more subject to change than user_id. Pick whatever is least likely to change
38 39 40 41 42 43 44 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 38 def key(value = nil, &block) if block_given? @oauth_key = block else @oauth_key = value.is_a?(Symbol) ? value : value.to_sym end end |
.oauth_key ⇒ Object
46 47 48 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 46 def oauth_key @oauth_key end |
.oauth_version ⇒ Object
30 31 32 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 30 def oauth_version @oauth_version ||= 1.0 end |
.request_token(token, secret) ⇒ Object
115 116 117 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 115 def request_token(token, secret) OAuth::RequestToken.new(consumer, token, secret) end |
.version(value) ⇒ Object
oauth version, 1.0 or 2.0
26 27 28 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 26 def version(value) @oauth_version = value end |
Instance Method Details
#client ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 3 def client unless @client if oauth_version == 1.0 @client = OAuth::AccessToken.new(self.consumer, self.token, self.secret) else @client = OAuth2::AccessToken.new(self.consumer, self.token) end end @client end |
#get(path, options = {}) ⇒ Object
19 20 21 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 19 def get(path, = {}) client.get(path) end |
#oauth_version ⇒ Object
15 16 17 |
# File 'lib/authlogic_connect/oauth/tokens/oauth_token.rb', line 15 def oauth_version self.class.oauth_version end |