def requestToken(): # Go to http://www.tumblr.com/oauth/apps and click your # app to find out your dynamic callback url t = Tumblpy(app_key = APP_KEY, app_secret = APP_SECRET, callback_url = 'http://' + BLOG_URL) return auth_props = t.get_authentication_tokens() auth_url = auth_props['auth_url'] oauth_token = auth_props['oauth_token'] oauth_token_secret = auth_props['oauth_token_secret'] print "token: %s" % oauth_token print "token_secret: %s" % oauth_token_secret print "connect to tumblr via %s" % auth_url print "once connected obtain the value in the URL with the tag oauth_verifier" t = Tumblpy(app_key = APP_KEY, app_secret = APP_SECRET, oauth_token = oauth_token, oauth_token_secret = oauth_token_secret) oauth_verifier = raw_input("inserta el oauth verifier: ") authorized_tokens = t.get_authorized_tokens(oauth_verifier) final_oauth_token = authorized_tokens['oauth_token'] final_oauth_token_secret = authorized_tokens['oauth_token_secret'] print "token: %s" % final_oauth_token print "token_secret: %s" % final_oauth_token_secret
def get_tumblpy(): keyfile = 'keys.json' keys = {} if P.exists(keyfile): print 'Using saved OAuth keys. If there is an error, remove %s' % keyfile keys = json.load(open(keyfile)) else: print 'Must complete OAuth steps first' save_keys = lambda: json.dump(keys, open(keyfile, 'w')) if not keys.get("OAUTH_CONSUMER_KEY"): print("Register an app at https://www.tumblr.com/oauth/apps .") print("Then input the given keys here.") keys['OAUTH_CONSUMER_KEY'] = raw_input("OAuth consumer key: ") keys['OAUTH_SECRET_KEY'] = raw_input("OAuth secret key: ") save_keys() if not keys.get("OAUTH_TOKEN"): t = Tumblpy(keys['OAUTH_CONSUMER_KEY'], keys['OAUTH_SECRET_KEY']) auth_props = t.get_authentication_tokens( callback_url='http://example.com/') auth_url = auth_props['auth_url'] keys['OAUTH_TOKEN_SECRET'] = auth_props['oauth_token_secret'] print 'Visit this URL: %s' % auth_url print 'Paste the redirect URL here:' redirect_url = raw_input('Redirect URL: ') res = parse_qs(redirect_url.split("?", 1)[1]) keys['OAUTH_TOKEN'] = res['oauth_token'][0].split("#")[0] keys['OAUTH_VERIFIER'] = res['oauth_verifier'][0].split("#")[0] save_keys() if not keys.get('FINAL_OAUTH_TOKEN'): t = Tumblpy(keys['OAUTH_CONSUMER_KEY'], keys['OAUTH_SECRET_KEY'], keys['OAUTH_TOKEN'], keys['OAUTH_TOKEN_SECRET']) authorized_tokens = t.get_authorized_tokens(keys['OAUTH_VERIFIER']) keys['FINAL_OAUTH_TOKEN'] = authorized_tokens['oauth_token'] keys['FINAL_OAUTH_SECRET'] = authorized_tokens['oauth_token_secret'] save_keys() print 'OAuth complete!' return Tumblpy(keys['OAUTH_CONSUMER_KEY'], keys['OAUTH_SECRET_KEY'], keys['FINAL_OAUTH_TOKEN'], keys['FINAL_OAUTH_SECRET'])
def callback(request): t = Tumblpy(app_key=settings.TUMBLR_CONSUMER_KEY, app_secret=settings.TUMBLR_SECRET_KEY, oauth_token=request.session["oauth_token"], oauth_token_secret=request.session["oauth_token_secret"]) oauth_verifier = request.GET.get('oauth_verifier') authorized_tokens = t.get_authorized_tokens(oauth_verifier) # save token locally. token, created = TumblrToken.objects.get_or_create( user=request.user, apikey=settings.TUMBLR_CONSUMER_KEY) token.access_token = authorized_tokens['oauth_token'] token.access_token_secret = authorized_tokens['oauth_token_secret'] token.save() return HttpResponse("Tumblr Oauth Passed.")
def GET(self): data = web.input(oauth_verifier=None) if data.oauth_verifier: tumblr = Tumblpy(app_key=KEYS['tumblr']['key'], app_secret=KEYS['tumblr']['secret'], oauth_token=session.tumblr_oauth_token, oauth_token_secret=session.tumblr_oauth_token_secret) auth = tumblr.get_authorized_tokens(data.oauth_verifier) return j({'success': True, 'auth': auth}) else: tumblr = Tumblpy(app_key=KEYS['tumblr']['key'], app_secret=KEYS['tumblr']['secret'], callback_url='https://secure.lumilux.org/admin/tumblrauth') auth = tumblr.get_authentication_tokens() auth_url = auth['auth_url'] session.tumblr_oauth_token = auth['oauth_token'] session.tumblr_oauth_token_secret = auth['oauth_token_secret'] raise web.SeeOther(auth_url)
callback_url = raw_input('Callback URL: ') auth_props = t.get_authentication_tokens(callback_url=callback_url) auth_url = auth_props['auth_url'] OAUTH_TOKEN_SECRET = auth_props['oauth_token_secret'] print('Connect with Tumblr via: {}'.format(auth_url)) oauth_token = raw_input('OAuth Token (from callback url): ') oauth_verifier = raw_input('OAuth Verifier (from callback url): ') t = Tumblpy(key, secret, oauth_token, OAUTH_TOKEN_SECRET) authorized_tokens = t.get_authorized_tokens(oauth_verifier) final_oauth_token = authorized_tokens['oauth_token'] final_oauth_token_secret = authorized_tokens['oauth_token_secret'] print('OAuth Token: {}'.format(final_oauth_token)) print('OAuth Token Secret: {}'.format(final_oauth_token_secret)) else: final_oauth_token = raw_input('OAuth Token: ') final_oauth_token_secret = raw_input('OAuth Token Secret: ') t = Tumblpy(key, secret, final_oauth_token, final_oauth_token_secret) blog_url = t.post('user/info') blog_url = blog_url['user']['blogs'][0]['url']