]> jfr.im git - z_archive/twitter.git/blobdiff - twitter/oauth_dance.py
Version 1.17.0
[z_archive/twitter.git] / twitter / oauth_dance.py
index d3f0ea8f6548635a5c93d6c832f160bb0d5f5cf3..43b88d0ea6e01a46c793408102e845094ed8e58f 100644 (file)
@@ -3,8 +3,9 @@ from __future__ import print_function
 import webbrowser
 import time
 
 import webbrowser
 import time
 
-from .api import Twitter
+from .api import Twitter, json
 from .oauth import OAuth, write_token_file
 from .oauth import OAuth, write_token_file
+from .oauth2 import OAuth2, write_bearer_token_file
 
 try:
     _input = raw_input
 
 try:
     _input = raw_input
@@ -12,6 +13,22 @@ except NameError:
     _input = input
 
 
     _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):
     """
 
 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(
         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
     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