我想将我的odoo与asana项目联系起来。
但它显示
HTTPError:HTTP Error 400: Bad Requesterror.
def execute(self, cr, uid, ids, context=None):
params = {
'client_id': '142025919&',
'client_secret': '9691f60a6ca68&',
'redirect_uri': 'urn:ief:wg:oauth:2.0:oob&',
'state' :'somerandmstate'
}
headers = {"Content-type": "application/x-www-form-urlencoded"}
req = urllib2.Request('https://app.asana.com/-/oauth_authorize%s?'%params)
_logger.info(req)
content = urllib2.urlopen(req, timeout=TIMEOUT).read()
答案 0 :(得分:1)
我有几条建议:
如果您决定继续使用此方法,则需要执行以下操作来修复您在urllib2
中工作的请求。首先,您的查询参数应该在问号之后。其次,您需要使用urllib.urlencode
对它们进行URL编码(然后您不需要在&
字典中包含params
)。例如
params = urllib.urlencode({
'client_id': 'someID',
'client_secret': 'someSecret',
'redirect_uri': 'urn:ief:wg:oauth:2.0:oob',
'state': 'somerandmstate'
})
req = urllib2.Request('https://app.asana.com/-/oauth_authorize?%s'%params)