Ich musste auf die Twitter-API zugreifen, und als ich versuchte, sie selbst zu implementieren, war es ... nun ... ein Ärger. Als ich nach einer Bibliothek suchte, fand ich eine Bibliothek namens rauth, also habe ich es versucht.
Da es sich um eine OAuth-Bibliothek handelt (keine Twitter-Bibliothek), können andere APIs als Twitter verwendet werden, solange es sich um eine OAuth-Authentifizierung handelt. Es hängt auch von Requests ab, und es fühlt sich gut an, den Code des HTTP-Request-Teils ordentlich schreiben zu können.
Unten ist ein Beispiel für das Murmeln von 'Wahrheit' auf meiner Zeitachse. "Hey, ist es nicht einfach?"
rauth_sample
import rauth
# access_token/access_token_Voraussetzung, ein Geheimnis zu bekommen
session = rauth.OAuth1Session(
"consumer_key",
"consumer_secret",
"access_token",
"access_token_secret")
#Es gibt eine Möglichkeit, die baseURL auf session zu setzen, diese wird jedoch weggelassen.
session.post(
'https://api.twitter.com/1.1/statuses/update.json',
data={'status': 'rauth'})
Im obigen Beispiel wird davon ausgegangen, dass access_token / access_token_secret im Voraus erhalten wurde, aber was die README betrifft, scheint es nicht so schwierig zu sein, sie zu erhalten. Versuchen wir es bald noch einmal.
Übrigens konnte sie nicht.
Die API baseURL kann weggelassen werden, indem OAuth1Service auf OAuth1Session gesetzt wird.
rauth_sample_set_service
twitter = rauth.OAuth1Service(
name='twitter',
consumer_key='consumer_key',
consumer_secret='consumer_secret',
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authorize',
base_url='https://api.twitter.com/1.1/')
session = rauth.OAuth1Session(
consumer_key='consumer_key',
consumer_secret='consumer_secret',
access_token='access_token',
access_token_secret='access_token_secret',
service=twitter)
#Die in Service festgelegte baseURL kann weggelassen werden
res = session.get(
url='statuses/home_timeline.json',
params={'count': 10})
print(res.json())
Recommended Posts