Pregunta

Estoy tratando de utilizar el SDK Python Yahoo Social para obtener un usuarios de contactos a través de OAuth. Esto es para una aplicación web que se ejecuta en App Engine. Así pues, tengo todo preparado para funcionar a través de la danza OAuth, el intercambio de claves y los verificadores de consumo y todo ese jazz. Almaceno el token y puedo volver a utilizarlo para recuperar un usuarios de los contactos hasta que el testigo de la expira una hora más tarde. Entonces, ¿hay alguien por ahí que ha utilizado el SDK de Python y me puede decir lo que está mal con este código simple:

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()

Al ejecutar este arroja el siguiente error:

'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>

Básicamente, si me comente la línea con refresh_access_token, y el token no ha expirado, este código funciona y consigo los contactos de los usuarios. Pero con refresh_acces_token, se produce un error en esa línea. ¿Puede alguien dar una mano?

¿Fue útil?

Solución 2

Resuelto. Por razones que no puedo entender, el código anterior ahora sólo funciona. Podría haber sido un problema en el extremo de yahoo, pero realmente no puede estar seguro. Ha estado funcionando muy bien durante dos semanas.

Otros consejos

Parece que algo malo con parametros que pasan. Trate de variables de depuración oauth_token.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top