class Gmail::Client::XOAuth
Attributes
consumer_key[R]
consumer_secret[R]
secret[R]
token[R]
Public Class Methods
new(username, options = {})
click to toggle source
Calls superclass method
Gmail::Client::Base::new
# File lib/gmail/client/xoauth.rb, line 11 def initialize(username, options = {}) @token = options.delete(:token) @secret = options.delete(:secret) @consumer_key = options.delete(:consumer_key) @consumer_secret = options.delete(:consumer_secret) super(username, options) end
Public Instance Methods
access_token()
click to toggle source
# File lib/gmail/client/xoauth.rb, line 34 def access_token consumer_options = { :site => "https://www.google.com", :request_token_path => "/accounts/OAuthGetRequestToken", :authorize_path => "/accounts/OAuthAuthorizeToken", :access_token_path => "/accounts/OAuthGetAccessToken" } consumer = OAuth::Consumer.new(consumer_key, consumer_secret, consumer_options) @access_token ||= OAuth::AccessToken.new(consumer, token, secret) @access_token end
login(raise_errors = false)
click to toggle source
# File lib/gmail/client/xoauth.rb, line 20 def login(raise_errors = false) @imap and @logged_in = (login = @imap.authenticate('XOAUTH', username, :consumer_key => consumer_key, :consumer_secret => consumer_secret, :token => token, :token_secret => secret)) && login.name == 'OK' rescue Net::IMAP::NoResponseError => e if raise_errors message = "Couldn't login to given Gmail account: #{username}" message += " (#{e.response.data.text.strip})" raise(AuthorizationError.new(e.response), message, e.backtrace) end end
smtp_settings()
click to toggle source
# File lib/gmail/client/xoauth.rb, line 46 def smtp_settings [:smtp, { :address => GMAIL_SMTP_HOST, :port => GMAIL_SMTP_PORT, :domain => mail_domain, :user_name => username, :password => { :consumer_key => consumer_key, :consumer_secret => consumer_secret, :token => token, :token_secret => secret, :access_token => access_token }, :authentication => :xoauth, :enable_starttls_auto => true }] end