Class: Howami::Authentication

Inherits:
Object
  • Object
show all
Includes:
Methadone::CLILogging
Defined in:
lib/howami/authentication.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAuthentication

Returns a new instance of Authentication.



8
9
10
# File 'lib/howami/authentication.rb', line 8

def initialize
  @client = Fitgem::Client.new({:consumer_key => CONSUMER_KEY, :consumer_secret => CONSUMER_SECRET})
end

Class Method Details

.authenticated_clientObject



35
36
37
38
39
40
41
42
43
44
# File 'lib/howami/authentication.rb', line 35

def self.authenticated_client
  raise "No valid credentials stored!" unless Configuration.has_valid_credentials?
  @auth_client ||= Fitgem::Client.new({
    :consumer_key => CONSUMER_KEY,
    :consumer_secret => CONSUMER_SECRET,
    :token => Configuration.get_credentials[:user_token],
    :secret => Configuration.get_credentials[:user_secret],
    :user_id => "-"
    })
end

Instance Method Details

#do_interactive_authObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/howami/authentication.rb', line 16

def do_interactive_auth
  fetch_request_token!

  auth_url = "http://www.fitbit.com/oauth/authorize?oauth_token=#{@request_token.token}"
  puts "Go to #{auth_url} and then enter the verifier code below and hit Enter"
  verifier = gets.chomp
  debug "Parsed user verifier as: #{verifier}"

  access_token = self.get_access_token_with_verifier(verifier)
  debug "Received user token is:    "+access_token.token
  debug "Received user secret is:   "+access_token.secret

  Configuration.store_credentials(access_token.token, access_token.secret)
end

#fetch_request_token!Object



12
13
14
# File 'lib/howami/authentication.rb', line 12

def fetch_request_token!
  @request_token = @client.request_token
end

#get_access_token_with_verifier(verifier) ⇒ Object



31
32
33
# File 'lib/howami/authentication.rb', line 31

def get_access_token_with_verifier(verifier)
  @client.authorize(@request_token.token, @request_token.secret, { :oauth_verifier => verifier })
end