2016-05-24 6 views
1

Ich versuche Application-only authorization zu verwenden Twitter API zuzugreifen. Ich kann ein Bearer-Token korrekt erhalten (zumindest denke ich das!), Aber wenn ich versuche, das Token für einen API-Aufruf zu verwenden, bekomme ich immer Invalid or expired token Fehler.„Ungültige oder abgelaufene Token“ Fehler bei dem Versuch, Twitter-API für den Zugriff auf

twitter_consumer_key = b"<MY_APP_CONSUMER_KEY>" 
twitter_consumer_secret = b"<MY_APP_SECRET_KEY>" 
twitter_keys = base64.standard_b64encode(twitter_consumer_key + b':' + twitter_consumer_secret) 

content = {'grant_type': 'client_credentials'} 
post_headers = { 
    b'Authorization': b'Basic ' + twitter_keys, 
    b'Content-Type': b'application/x-www-form-urlencoded;charset=UTF-8' 
} 

twitter_bearer = requests.post('https://api.twitter.com/oauth2/token', headers=post_headers, data=content).json()['access_token'] 
twitter_headers = { 
    b'Authorization': b'Bearer ' + base64.b64encode(twitter_bearer.encode('utf-8')), 
} 
response = requests.get("https://api.twitter.com/1.1/users/show.json?screen_name=itechbrij", 
           headers=twitter_headers).text 

print(twitter_followers) gibt {"errors":[{"code":89,"message":"Invalid or expired token."}]}

Jede Hilfe sehr geschätzt wird. Dank

Antwort

0

diese Änderungen in BOLD Versuchen:

twitter_keys = base64.standard_b64encode ((twitter_consumer_key + ':' + twitter_consumer_secret) .encode ('UTF-8'))

post_headers = { 'User-Agent': 'IHR BENUTZER-AGENT STRING', 'Autorisierung': 'Basis' + twitter_keys **. Decode ('utf8') **, 'Inhaltstyp': 'application/x-www -form-urlencoded; Zeichensatz = UTF-8 ' }

twitter_bearer requests.post = ( 'https://api.twitter.com/oauth2/token', headers = post_headers, params = Inhalt) .json() [ 'access_token']