Die Github-Seite python-oauth2 gibt Anweisungen zum Erstellen signierter Anfragen mit req = oauth.Request(...)
, die ein Wörterbuch zurückgibt, das signiert werden kann. Aber wie sende ich diese Anfragen eigentlich?Anmeldeanfragen mit python-oauth2
Antwort
Sehen Sie sich den nächsten Schritt in der README an.
mit dem Client
import oauth2 as oauth
# Create your consumer with the proper key/secret.
consumer = oauth.Consumer(key="your-twitter-consumer-key",
secret="your-twitter-consumer-secret")
# Request token URL for Twitter.
request_token_url = "http://twitter.com/oauth/request_token"
# Create our client.
client = oauth.Client(consumer)
# The OAuth Client request works just like httplib2 for the most part.
resp, content = client.request(request_token_url, "GET")
print resp
print content
Ich denke, ich bin ein Opfer extrem schlechter Dokumentation. Ich glaube nicht, dass ich sogar den Abschnitt "Signieren" brauche, da das, was der Client in Ihrem Beispiel tut, für OAuth-Dienste ausreicht. – Steve
Gerade diese Zeile am Ende hinzu:
rs = urllib2.urlopen(req.to_url())
Wo req
Ihr Objekt Anfrage ist.
Dies funktioniert nicht für mich - es sendet nur die (unsigned) Anfrage an die URL. Ich erhalte eine Nachricht "Ungültige Authentifizierungsdaten", da die Anforderung nicht signiert ist. – pcv
Tatsächlich fehlt den Dokumenten der Token-Parameter in Client. Sollte sein: client = oauth.Client (consumer, token); resp, content = client.request (URL, "GET") Btw. Warum ist diese Frage geschlossen? – pcv
Ist das ein Duplikat? http://stackoverflow.com/questions/2138656/signing-requests-in-python-for-oauth – Daenyth
@Daenyth: Es ist kein Duplikat von dieser Frage. Diese Frage hat benutzerdefinierten Python-Code, um die Signatur zu erstellen, die diese Frage mit der 'python-oauth2'-Bibliothek verwendet. – abraham
zu lokalisiert? WTF – Jannis