X-Git-Url: https://jfr.im/git/z_archive/twitter.git/blobdiff_plain/ddeba1648426ffe018211dba5f7b92bdd3d1c007..0396df77671421fa844deddcb074b56e14bc5971:/twitter/oauth_dance.py diff --git a/twitter/oauth_dance.py b/twitter/oauth_dance.py index dcbcc6a..17dbae6 100644 --- a/twitter/oauth_dance.py +++ b/twitter/oauth_dance.py @@ -1,9 +1,18 @@ +from __future__ import print_function + import webbrowser import time -from api import Twitter -from oauth import OAuth, write_token_file +from .api import Twitter +from .oauth import OAuth, write_token_file + +try: + _input = raw_input +except NameError: + _input = input + + def oauth_dance(app_name, consumer_key, consumer_secret, token_filename=None): """ @@ -12,42 +21,53 @@ def oauth_dance(app_name, consumer_key, consumer_secret, token_filename=None): Provide the name of your app in `app_name`, your consumer_key, and consumer_secret. This function will open a web browser to let the - user Allow your app to access their Twitter account. PIN + user allow your app to access their Twitter account. PIN authentication is used. If a token_filename is given, the oauth tokens will be written to the file. """ - print ("Hi there! We're gonna get you all set up to use %s." % app_name) + print("Hi there! We're gonna get you all set up to use %s." % app_name) twitter = Twitter( auth=OAuth('', '', consumer_key, consumer_secret), - format='') + format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.request_token()) - print """ + print(""" In the web browser window that opens please choose to Allow access. Copy the PIN number that appears on the next page and paste or type it here: -""" - webbrowser.open( - 'http://api.twitter.com/oauth/authorize?oauth_token=' + - oauth_token) - time.sleep(2) # Sometimes the last command can print some - # crap. Wait a bit so it doesn't mess up the next - # prompt. - oauth_verifier = raw_input("Please type the PIN: ").strip() +""") + oauth_url = ('http://api.twitter.com/oauth/authorize?oauth_token=' + + oauth_token) + print("Opening: %s\n" % oauth_url) + + try: + r = webbrowser.open(oauth_url) + time.sleep(2) # Sometimes the last command can print some + # crap. Wait a bit so it doesn't mess up the next + # prompt. + if not r: + raise Exception() + except: + print(""" +Uh, I couldn't open a browser on your computer. Please go here to get +your PIN: + +""" + oauth_url) + oauth_verifier = _input("Please enter the PIN: ").strip() twitter = Twitter( auth=OAuth( oauth_token, oauth_token_secret, consumer_key, consumer_secret), - format='') + format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( twitter.oauth.access_token(oauth_verifier=oauth_verifier)) if token_filename: write_token_file( token_filename, oauth_token, oauth_token_secret) - print - print "That's it! Your authorization keys have been written to %s." % ( - token_filename) + print() + print("That's it! Your authorization keys have been written to %s." % ( + token_filename)) return oauth_token, oauth_token_secret def parse_oauth_tokens(result):