2012-03-26 12 views
5

La pagina Github di python-oauth2 fornisce istruzioni sulla creazione di richieste firmate con req = oauth.Request(...), che restituisce un dizionario che può essere firmato. Ma come faccio ad inviare queste richieste?Richieste di firma con python-oauth2

+0

È un duplicato? http://stackoverflow.com/questions/2138656/signing-requests-in-python-for-oauth – Daenyth

+1

@Daenyth: Non è un duplicato di quella domanda. Quella domanda ha un codice Python personalizzato per creare la firma questa domanda sta usando la libreria 'python-oauth2'. – abraham

+0

troppo localizzato? WTF – Jannis

risposta

1

Osservare il passaggio successivo nel README.

Utilizzo del 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 
+1

Penso di essere vittima di una documentazione estremamente scarsa. Non penso nemmeno di aver bisogno della sezione "firma", poiché ciò che il client fa nel tuo esempio sembra essere sufficiente per i servizi OAuth. – Steve

4

Basta aggiungere questa riga alla fine:

rs = urllib2.urlopen(req.to_url()) 

Dove req è il vostro oggetto Request.

+0

Questo non funziona per me: invia semplicemente la richiesta (non firmata) all'URL. Ricevo un messaggio "Dati di autenticazione errati" perché la richiesta non è firmata. – pcv

+2

In realtà, i documenti mancano del parametro token nel client. Dovrebbe essere: client = oauth.Client (consumer, token); resp, content = client.request (URL, "GET") Btw. Perché questa domanda è chiusa? – pcv