Sto battendo la testa contro il muro per capire come inviare richieste autenticate con oauth.Come inviare una richiesta di oauth con python-oauth2
Sono stato in grado di ottenere token di accesso, ma non ero del tutto sicuro di come inviare una richiesta con loro. Ho trovato questo su informazioni dello sviluppatore di Twitter:
https://dev.twitter.com/docs/auth/oauth/single-user-with-examples#python che ha qualche codice di esempio per l'invio di una richiesta di autorizzazione:
def oauth_req(url, key, secret, http_method="GET", post_body=None,http_headers=None):
consumer = oauth.Consumer(key=consumerKey, secret=consumerSecret)
token = oauth.Token(key=tokenKey, secret=tokenSecret)
client = oauth.Client(consumer, token)
resp, content = client.request(
url,
method=http_method,
body=post_body,
headers=http_headers,
#force_auth_header=True
)
return resp,content
oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
Tuttavia, quando ho inserito tutti i miei dati, ho ricevuto il seguente errore:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/python-22060Umg.py", line 153, in <module>
transactions = oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
File "/tmp/python-22060Umg.py", line 76, in oauth_req
force_auth_header=True
TypeError: request() got an unexpected keyword argument 'force_auth_header'
dove: l'utente è l'utente effettivo (l'ho rimosso dal post) e tokenKey/tokenSecret sono i token di accesso.
ho pensato forse era così semplice come commento la riga incriminata, ma senza fortuna del genere:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/tmp/python-22060hwm.py", line 153, in <module>
transactions = oauth_req('http://openapi.etsy.com/v2/shops/:user/transactions',tokenKey,tokenSecret)
File "/tmp/python-22060hwm.py", line 75, in oauth_req
headers=http_headers
File "/usr/lib/python2.7/dist-packages/oauth2/__init__.py", line 662, in request
req.sign_request(self.method, self.consumer, self.token)
File "/usr/lib/python2.7/dist-packages/oauth2/__init__.py", line 493, in sign_request
self['oauth_body_hash'] = base64.b64encode(sha(self.body).digest())
TypeError: must be string or buffer, not None
Così ora, StackOverflow, si sono la mia unica speranza! Qualcuno ha suggerimenti su come utilizzare il mio token di accesso per inviare una richiesta?
grazie!
puoi pubblicare il tuo codice? non è davvero possibile aiutare senza di esso – jterrace
Il codice è lo stesso del link nel post originale. Ho modificato il post originale per contenere il codice; Grazie! –