Module: DropboxAuth

Defined in:
lib/dropbox.rb

Class Method Summary collapse

Class Method Details

.clientObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/dropbox.rb', line 6

def self.client
  token = Pit::get('rget-dropbox')
  unless token[:api_key]
    print "Enter dropbox app key: "
    token[:api_key] = $stdin.gets.chomp
    print "Enter dropbox app secret: "
    token[:api_secret] = $stdin.gets.chomp
    Pit::set('rget-dropbox', data: token)
  end
  Dropbox::API::Config.app_key    = token[:api_key]
  Dropbox::API::Config.app_secret = token[:api_secret]
  Dropbox::API::Config.mode       = 'dropbox'

  unless token[:access_token]
    consumer = Dropbox::API::OAuth.consumer(:authorize)
    request_token = consumer.get_request_token
    puts "\nGo to this url and click 'Authorize' to get the token:"
    puts request_token.authorize_url
    query = request_token.authorize_url.split('?').last
    verifier, = CGI.parse(query)['oauth_token']
    print "\nOnce you authorize the app on Dropbox, press enter... "
    $stdin.gets
    access_token = request_token.get_access_token(oauth_verifier: verifier)
    token[:access_token]  = access_token.token
    token[:access_secret] = access_token.secret
    Pit::set('rget-dropbox', data: token)
  end

  Dropbox::API::Client.new(token: token[:access_token], secret: token[:access_secret])
end