2016-06-08 7 views
0

Я хочу связать свой одуй с проектом асаны. но отображения 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() 

ответ

1

У меня есть несколько рекомендаций для вас:

  1. Если вы хотите подключиться к API асан с помощью Python, я настоятельно рекомендую нашу client library.
  2. Страница, которую вы пытаетесь загрузить, предназначена для людей. Ваше приложение должно направить человека на эту страницу в браузере. Они вернут токен, который можно вставить в ваше приложение. См. our OAuth documentation для более подробной информации.
  3. Если вы решите продолжить использовать этот подход, вам необходимо сделать пару действий, чтобы исправить ваш запрос на работу в urllib2. Во-первых, ваши параметры запроса должны появиться после знака вопроса. Во-вторых, вам нужно кодировать URL, используя urllib.urlencode (и тогда вам не нужно включать & s в словарь 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)