Wie erhalte ich ein Benutzerprofilbild mit Twython?

Ich sehe die show_user() -Methode, aber das Instanziieren von Twython mit API-Schlüssel und secret + oauth-Token und secret und das Aufrufen dieser Methode gibt 404 zurück: TwythonError: Twitter API returned a 404 (Not Found), Sorry, that page does not exist.

Wenn Sie dieselbe Methode von Twython aus aufrufen, das mit api / oauth-Schlüsseln instanziiert wurde, wird 400: TwythonAuthError: Twitter API returned a 400 (Bad Request), Bad Authentication data zurückgegeben.

Ich habe auch versucht, GET Benutzerinformationen von https://api.twitter.com/1.1/users/show.json?screen_name=USERSCREENNAME zu erhalten, und habe auch 400 erhalten.

Ich würde mich über ein funktionierendes Beispiel für eine authentifizierte Anfrage an Twitter API 1.1 freuen. Kann es nicht auf Twitter API Referenz finden.

3
Neara 3 Juni 2013 im 13:22

5 Antworten

Beste Antwort

Sie müssen die Methode show_user mit dem Argument screen_name aufrufen

t = Twython(app_key=settings.TWITTER_CONSUMER_KEY,
            app_secret=settings.TWITTER_CONSUMER_SECRET,
            oauth_token=oauth_token,
            oauth_token_secret=oauth_token_secret)

print t.show_user(screen_name=account_name)
5
ignacio.munizaga 17 Juni 2013 im 17:12

Hier ist, wie ich es mit Twython gemacht habe, um Benutzerdetails zu erhalten (Python 3). Sie können alle Schlüssel-IDs des Json hier referenzieren: https: // dev .twitter.com / docs / api / 1.1 / get / users / show

from twython import Twython

APP_KEY = 'xxxx'
APP_SECRET = 'xxxxx'
OAUTH_TOKEN = 'xxxx'
OAUTH_TOKEN_SECRET = 'xxx'

twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

details = twitter.show_user(screen_name='lyanaz')
print (details['profile_image_url']) #Prints profile image URL
0
Vang Lian 13 Feb. 2014 im 10:27

Aus den Beispielen hier: https://github.com/ryanmcgrath/twython/tree/master/ Beispiele

from twython import Twython

# Requires Authentication as of Twitter API v1.1
twitter = Twython(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)

avatar = open('myImage.png', 'rb')
twitter.update_profile_image(image=avatar)

Dies ändert tatsächlich den Avatar, aber es sollte Ihnen den Einstieg erleichtern.

Außerdem erfahren Sie hier, wie Sie sich ordnungsgemäß authentifizieren: https://github.com/ryanmcgrath/twython#authorization-url

-1
pypat 3 Juni 2013 im 09:33

Ich habe mein Problem folgendermaßen gelöst:

    api = 'https://api.twitter.com/1.1/users/show.json'
    args = {'screen_name': account_name}
    t = Twython(app_key=settings.TWITTER_CONSUMER_KEY,
                 app_secret=settings.TWITTER_CONSUMER_SECRET,
                 oauth_token=token.token,
                 oauth_token_secret=token.secret)
    resp = t.request(api, params=args)

Dies gibt eine JSON-Antwort zurück, siehe Twitter-Dokumente. Also in meinem Fall: resp['profile_image_url_https'] gibt die URL zum Benutzerprofilbild in normaler Größe für Twitter an, die 48 x 48 Pixel groß ist.

0
Neara 3 Juni 2013 im 16:19

Alle Twitter API v1.1-Endpunkte erfordern eine Authentifizierung.

Dieses Beispiel ist korrekt: Twitter API / Twython - Benutzer anzeigen, um Benutzerprofilbild zu erhalten

0
Community 23 Mai 2017 im 12:22