1

Yahoo Social Python SDKを使用して、oAuthを介してユーザーの連絡先を取得しようとしています。これは、AppEngineで実行されているWebアプリ用です。つまり、oAuthダンスを実行し、コンシューマーキーとベリファイア、およびそのすべてのジャズを交換するようにすべてを設定しました。トークンを保存し、トークンが1時間後に期限切れになるまで、トークンを再利用してユーザーの連絡先を取得できます。では、Python SDKを使用したことがあり、この単純なコードの何が問題になっているのかを教えてくれる人はいますか?

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

これを実行すると、次のエラーがスローされます。

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

基本的に、refresh_access_tokenで行をコメントアウトし、トークンの有効期限が切れていない場合、このコードは機能し、ユーザーの連絡先を取得します。しかし、refresh_acces_tokenを使用すると、その行で失敗します。誰でも手を差し伸べることができますか?

4

2 に答える 2

0

パラメータの受け渡しに問題があるようです。oauth_token変数をデバッグしてみてください。

于 2010-10-31T18:42:04.340 に答える
0

解決しました。理解できない理由で、上記のコードは現在は正常に機能しています。yahoo側の問題だったのかもしれませんが、よくわかりません。2週間は問題なく動作しています。

于 2010-11-15T18:58:11.207 に答える