В общем пишу клиент для управления своим аккаунтом на бирже 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'}
Вот хоть тресни. А эталонный код норм срабатывает.
Где я туплю?