@dark46

Почему ошибка авторизации API Exmo через python requests?

В общем пишу клиент для управления своим аккаунтом на бирже EXMO. API описано
тут - https://exmo.me/ru/api . Там же дается эталонный код для получения данных через метод POST с авторизацией через api-ключи https://github.com/exmo-dev/exmo_api_lib/tree/mast... . Но он меня не устраивает, так как библиотека http.client не хочет работать через прокси, да и вообще requests гораздо удобнее и работает с прокси.

Вот мой код кусок кода:
def call_api(api_method, **kwargs):

    params = {'nonce': int(round(time.time() * 1000))}
    if kwargs:
        params.update(kwargs)
    params = urllib.parse.urlencode(params)

    H = hmac.new(key=API_SECRET, digestmod=hashlib.sha512)
    H.update(params.encode('utf-8'))
    sign = H.hexdigest()


    headers = {"Content-type": "application/x-www-form-urlencoded",
               "Key": API_KEY,
               "Sign": sign}


    response = requests.post('https://' + API_URL + "/" + API_VERSION + "/" + api_method,
                             headers=headers,
                             params=params
                             )

API_KEY и API_SECRET подставляю одинаковые, но через requests мне приходит ответ:
{'result': False, 'error': 'Error 40005: Authorization error, Incorrect signature'}

Вот хоть тресни. А эталонный код норм срабатывает.

Где я туплю?
  • Вопрос задан
  • 587 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dark46 Автор вопроса
Все сам разобрался :) пол дня мозг ломал, а надо было не params=params, а data=params :)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы