Source

TumblrPicUploader / auth.py

Full commit
import urlparse
import oauth2 as oauth
import webbrowser

#class AuthInit it's used to get the access credential the first time you use this program.

class AuthInit:

	consumer_key = 'BLB7gOV7PiEKwqdkCmoc2WZ2aoUo0DR1MXwswSD2aOJXoiHjrY'
	consumer_secret = '0eWNrNpdDNLEoxH5qsekD0FNzIww9qI24rfsa7NJZ0XQD4Urlj'
	oauth_token =''
	oauth_token_secret=''

	request_token_url = 'http://www.tumblr.com/oauth/request_token'
	access_token_url = 'http://www.tumblr.com/oauth/access_token'
	authorize_url = 'http://www.tumblr.com/oauth/authorize'

	def __init__(self):
		consumer = oauth.Consumer(consumer_key, consumer_secret)
		client = oauth.Client(consumer)
		# Step 1: Get a request token. This is a temporary token that is used for 
		# having the user authorize an access token and to sign the request to obtain 
		# said access token.
		resp, content = client.request(request_token_url, "GET")
		if resp['status'] != '200':
		    raise Exception("Invalid response %s." % resp['status'])
		request_token = dict(urlparse.parse_qsl(content))
		print "Request Token:"
		print "    - oauth_token        = %s" % request_token['oauth_token']
		print "    - oauth_token_secret = %s" % request_token['oauth_token_secret']
		print 
		# Step 2: Redirect to the provider. Since this is a CLI script we do not 
		# redirect. In a web application you would redirect the user to the URL
		# below.

		print "The browser should open this url:"
		print "%s?oauth_token=%s" % (authorize_url, request_token['oauth_token'])
		print "If it doesn't, go for it yourself!"
		webbrowser.open_new("%s?oauth_token=%s" % (authorize_url, request_token['oauth_token']))

		# After the user has granted access to you, the consumer, the provider will
		# redirect you to whatever URL you have told them to redirect to. You can 
		# usually define this in the oauth_callback argument as well.
		accepted = 'n'
		while accepted.lower() == 'n':
		    accepted = raw_input('Have you authorized me? (y/n) ')
		oauth_verifier = raw_input('What is the Werifier (Copy it here)? :')

		# Step 3: Once the consumer has redirected the user back to the oauth_callback
		# URL you can request the access token the user has approved. You use the 
		# request token to sign this request. After this is done you throw away the
		# request token and use the access token returned. You should store this 
		# access token somewhere safe, like a database, for future use.
		token = oauth.Token(request_token['oauth_token'],
		    request_token['oauth_token_secret'])
		token.set_verifier(oauth_verifier)
		client = oauth.Client(consumer, token)

		resp, content = client.request(access_token_url, "POST")
		access_token = dict(urlparse.parse_qsl(content))

		print "Access Token:"
		print "    - oauth_token        = %s" % access_token['oauth_token']
		print "    - oauth_token_secret = %s" % access_token['oauth_token_secret']
		print
		print "You may now access protected resources using the access tokens above." 
		print
		oauth_token = access_token['oauth_token']
		oauth_token_secret = access_token['oauth_token_secret']

	def getCredentials():
		cred = { "consumer_key" : consumer_key,
		'secret_key' : consumer_secret,
        	'oauth_token' : oauth_token,
        	'oauth_token_secret' : oauth_token_secret}
		return cred