如何将odoo与asana连接起来?

how to connect odoo with asana?

我想将我的 odoo 与 asana 项目连接起来。 但它显示 HTTP错误: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()

我有几个建议给你:

  1. 如果您想使用 Python 连接到 Asana API,我强烈推荐我们的 client library
  2. 您尝试加载的页面是供人使用的。您的应用程序应将用户引导至浏览器中的该页面。他们将取回一个可以粘贴到您的应用程序中的令牌。有关详细信息,请参阅 our OAuth documentation
  3. 如果您决定继续使用这种方法,您需要做几件事来修复您的请求以在 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)