AppEngineとContext.IOAPIで非常に奇妙な問題が発生しています。
python-oauth2を使用するcontextIO2ライブラリを使用しています。
ターミナルからライブラリ(contextIO2)を試してみると、問題はありません(少なくとも、まだです。しかし、数十回、数日間問題なく試してみました)。
しかし、AppEngineでコードを実行すると、エラーが発生することがあり401 Authorization Invalid consumer key
ます。何が原因かわかりません。1分でリクエストが正常になり、もう一度リクエストを試すと、401
が表示され、しばらくすると問題がなくなり、再び問題が発生しなくなります。
Context.IOサポートにメールを送信したところ、彼が私のアプリのURLを試したところ、「oauth_consumer_keyが正しく送信されていないようです」というエラーが表示されたとのことでした。これを引き起こしている可能性がありますか?AppEngineがリクエストを台無しにしましたか?pythoan-oauth2のバグ?contextIO2のバグ?
これが私のハンドラーのコードの1つです:
class ReceiveConnectTokenHandler(webapp2.RequestHandler):
def get(self):
contextio_token = self.request.get('contextio_token')
cio = ContextIO(API_KEY, API_SECRET)
# get token's associated email
try:
token = cio.get_connect_token(contextio_token)
except RequestError, e:
if e.status_code == 404:
self.response.write(
'Token %s not found. ' % contextio_token)
return
raise e
account = token.account
if not account or not account.email_addresses:
self.response.write(
'Token %s has no email associated with it yet.' % contextio_token)
return
email = account.email_addresses[0]
# clear email's memcache
memcache.delete_multi(['accounts', 'no_account'], namespace=email)
self.response.write(
'''%s is now connected with Context.IO. Please verify in the
gadget that you have granted access. You can close this window.''' % email
)
簡単なGETオンですhttps://api.context.io/2.0/connect_tokens/{{token}}