Domanda

Sto cercando di usare il Yahoo sociale Python SDK per ottenere un utente contatti tramite OAuth. Questo è per una webapp in esecuzione su App Engine. Così, ho tutto impostato per eseguire attraverso la danza oAuth, scambio di chiavi di consumo e verificatori e tutto ciò che il jazz. I memorizzare il token e posso riutilizzarlo per recuperare un contatto gli utenti fino a quando il token scade un'ora più tardi. Quindi, c'è qualcuno là fuori che ha utilizzato il Python SDK e può dirmi che cosa è sbagliato con questo semplice codice:

import yahoo.application
CONSUMER_KEY      = '####'
CONSUMER_SECRET   = '##'
APPLICATION_ID    = '##'
CALLBACK_URL      = '##'
oauthapp      = yahoo.application.OAuthApplication(CONSUMER_KEY, CONSUMER_SECRET, APPLICATION_ID, CALLBACK_URL)
oauthapp.token = yahoo.oauth.AccessToken.from_string(access_token) #access_token is legit string pulled from datastore
oauthapp.token = oauthapp.refresh_access_token(oauthapp.token)
contacts = oauthapp.getContacts()

L'esecuzione di questo getta il seguente errore:

'oauth_token'<br>
Traceback (most recent call last):<br>
File "/base/python_runtime/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 513, in __call__<br>
handler.post(*groups)<br>
File "/base/data/home/apps/testproj/2.345270664321958961/scripteditor.py", line 1249, in post<br>
oauthapp.token = oauthapp.refresh_access_token(oauthapp.token)<br>
File "/base/data/home/apps/testproj/2.345270664321958961/yahoo/application.py", line 90, in refresh_access_token<br>
self.token = self.client.fetch_access_token(request)<br>
File "/base/data/home/apps/testproj/2.345270664321958961/yahoo/oauth.py", line 165, in fetch_access_token<br>
return AccessToken.from_string(self.connection.getresponse().read().strip())<br>
File "/base/data/home/apps/testproj/2.345270664321958961/yahoo/oauth.py", line 130, in from_string<br>
key = params['oauth_token'][0]<br>
KeyError: 'oauth_token'<br>

In pratica, se io commento la linea con refresh_access_token, e il token non è scaduto, funziona questo codice e mi vengono i contatti degli utenti. Ma con refresh_acces_token, non riesce a quella linea. Qualcuno può dare una mano?

È stato utile?

Soluzione 2

risolto. Per ragioni che non riesco a capire, il codice precedente ora funziona. Avrebbe potuto essere un problema sulla fine di Yahoo, ma davvero non può essere sicuro. E 'stato funzionando benissimo per due settimane.

Altri suggerimenti

Sembra che qualcosa di sbagliato con params di passaggio. Cercate di variabili di debug oauth_token.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top