0

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

4

1 に答える 1

0

グレッグの提案に従って回答を投稿します。

問題は、contextIO2ライブラリがそのrequest_uriメソッドを次のように定義したことでした。

def request_uri(uri, method='GET', params={}, headers={}):

これは一般的なPythonの落とし穴です(このリストの#5)。Context.IOサポートに通知し、プルリクエストを送信しました。

于 2012-11-26T06:17:03.510 に答える