0

我对 AppEngine 和 Context.IO API 有一个非常奇怪的问题。

我正在使用contextIO2库,它使用python-oauth2

当我通过终端试用库(contextIO2)时,我没有遇到任何问题(或者至少现在还没有。但我在几天内尝试了几十次都没有问题)。

但是在 AppEngine 上运行代码时,有时401 Authorization Invalid consumer key出错。我不确定是什么原因造成的,因为一分钟请求正常,然后当我再次尝试请求时,我得到了401,然后过一会儿就好了,然后又不行了,依此类推。

我通过电子邮件发送了 Context.IO 支持,他说当他尝试我的应用程序的 url 并收到错误时,“oauth_consumer_key 似乎没有正确传输”。这可能是什么原因造成的?AppEngine 搞砸了请求?pythoan-oauth2 错误?contextIO2 错误?

这是我的处理程序之一的代码:

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 onhttps://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 回答