X-Git-Url: https://jfr.im/git/z_archive/twitter.git/blobdiff_plain/89f30c21b39702d330070ed54d2d82377501f472..17b9ff10207340026b876eb623660f2c79bfe85d:/twitter/oauth_dance.py diff --git a/twitter/oauth_dance.py b/twitter/oauth_dance.py index d3f0ea8..43b88d0 100644 --- a/twitter/oauth_dance.py +++ b/twitter/oauth_dance.py @@ -3,8 +3,9 @@ from __future__ import print_function import webbrowser import time -from .api import Twitter +from .api import Twitter, json from .oauth import OAuth, write_token_file +from .oauth2 import OAuth2, write_bearer_token_file try: _input = raw_input @@ -12,6 +13,22 @@ except NameError: _input = input +def oauth2_dance(consumer_key, consumer_secret, token_filename=None): + """ + Perform the OAuth2 dance to transform a consumer key and secret into a + bearer token. + + If a token_filename is given, the bearer token will be written to + the file. + """ + twitter = Twitter( + auth=OAuth2(consumer_key=consumer_key, consumer_secret=consumer_secret), + format="", + api_version="") + token = json.loads(twitter.oauth2.token(grant_type="client_credentials"))["access_token"] + if token_filename: + write_bearer_token_file(token) + return token def oauth_dance(app_name, consumer_key, consumer_secret, token_filename=None): """ @@ -31,7 +48,7 @@ def oauth_dance(app_name, consumer_key, consumer_secret, token_filename=None): auth=OAuth('', '', consumer_key, consumer_secret), format='', api_version=None) oauth_token, oauth_token_secret = parse_oauth_tokens( - twitter.oauth.request_token()) + twitter.oauth.request_token(oauth_callback="oob")) 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