class GDataPlus::Authenticator::OAuth
Public Class Methods
new(options = {})
click to toggle source
Create a new instance.
Options¶ ↑
- :consumer_key
-
(required)
- :consumer_secret
-
(required)
TODO document optional options
# File lib/gdata_plus/authenticator/o_auth.rb, line 17 def initialize(options = {}) required_options = [:consumer_key, :consumer_secret] optional_options = [:request_token, :request_secret, :access_token, :access_secret] options = Util.prepare_options(options, required_options, optional_options) (required_options + optional_options).each do |option_name| instance_variable_set :"@#{option_name}", options[option_name] end end
Public Instance Methods
access_token()
click to toggle source
# File lib/gdata_plus/authenticator/o_auth.rb, line 84 def access_token if @access_token && @access_secret ::OAuth::AccessToken.new(consumer, @access_token, @access_secret) end end
consumer()
click to toggle source
# File lib/gdata_plus/authenticator/o_auth.rb, line 27 def consumer ::OAuth::Consumer.new(@consumer_key, @consumer_secret, :request_token_url => "https://www.google.com/accounts/OAuthGetRequestToken", :authorize_url => "https://www.google.com/accounts/OAuthAuthorizeToken", :access_token_url => "https://www.google.com/accounts/OAuthGetAccessToken" ) end
fetch_access_token(oauth_verifier)
click to toggle source
Exchanges the request token for the access token. The “oauth_verifier” is passed as a URL parameter when Google redirects the client back to your oauth_callback URL.
# File lib/gdata_plus/authenticator/o_auth.rb, line 73 def fetch_access_token(oauth_verifier) access_token = request_token.get_access_token(:oauth_verifier => oauth_verifier) @access_token = access_token.token @access_secret = access_token.secret @request_token = nil @request_secret = nil access_token # TODO deal with error response end
fetch_request_token(options = {}, additional_oauth_options = {}, additional_request_params = {})
click to toggle source
Arguments¶ ↑
- options
-
(required) see options documentation below
- additional_oauth_options
-
additional oauth params to pass to get_request_token; you will normally leave this blank
- additional_request_params
-
additional params to pass with request; you will normally leave this blank
Options¶ ↑
- :scope
-
(required) gdata scope; can be an Array or a String
- :oauth_callback
-
(required) Google will redirect the user back to this URL after authentication
# File lib/gdata_plus/authenticator/o_auth.rb, line 49 def fetch_request_token(options = {}, additional_oauth_options = {}, additional_request_params = {}) options = ::GDataPlus::Util.prepare_options(options, [:scope, :oauth_callback]) additional_oauth_options.merge!(:oauth_callback => options[:oauth_callback]) scope = options[:scope] scope = scope.join(" ") if scope.is_a? Array additional_request_params.merge!(:scope => scope) request_token = consumer.get_request_token(additional_oauth_options, additional_request_params) @request_token = request_token.token @request_secret = request_token.secret request_token # TODO deal with error response end
request_token()
click to toggle source
# File lib/gdata_plus/authenticator/o_auth.rb, line 65 def request_token if @request_token && @request_secret ::OAuth::RequestToken.new(consumer, @request_token, @request_secret) end end
sign_request(request)
click to toggle source
Adds authorization header to the specified Typeoeus::Request. The same request is also returned.
# File lib/gdata_plus/authenticator/o_auth.rb, line 91 def sign_request(request) raise ArgumentError, "request must be a Typeoeus::Request" unless request.is_a? ::Typhoeus::Request helper = ::OAuth::Client::Helper.new(request, { :consumer => consumer, :request_uri => request.url, :token => access_token }) request.headers.merge!({"Authorization" => helper.header}) request end