Yahoo Social Python SDKでrefresh_access_tokenの使用方法
-
08-10-2019 - |
質問
Yahoo Social Python SDKを使用して、OAuthを介してユーザーの連絡先を取得しようとしています。これは、App Engineで実行されているWebApp用です。だから、私はすべてがOauth Danceを駆け抜け、消費者の鍵と検証者、そしてすべてのジャズを交換するために設定されています。トークンを保管し、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>
基本的に、reflesh_access_tokenでラインをコメントアウトし、トークンが期限切れになっていない場合、このコードは機能し、ユーザーの連絡先を取得します。しかし、refresh_acces_tokenでは、その行で失敗します。誰かが手を差し伸べることができますか?
解決 2
解決した。私が理解できない理由で、上記のコードは今機能しています。 Yahooの終わりには問題だったかもしれませんが、私は本当に確信が持てません。 2週間はうまく動作しています。
他のヒント
パラメーションを渡すことで何か問題のように見えます。 oauth_token変数をデバッグしてみてください。
所属していません StackOverflow