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