Как создать запрос, который удовлетворяет аутентификации секретного ключа / подписи ключа API? - PullRequest
0 голосов
/ 10 января 2019

Это похоже на стандарт для любого криптообмена, но эта тема не рассматривается в библиотеке запросов. Документация по API Poloniex: https://poloniex.com/support/api/#general_authentication

Я пытаюсь создать небольшой скрипт, который может вызывать команду returnBalances. Я провел несколько дней несколько часов, но самый близкий, который я могу получить, является ответом "неверный секрет / подпись".

Я думаю, что проблема в том, что в подписи мне нужно использовать URI, который включает параметры, но как мне узнать формат URL с параметрами? Это не должно быть угадано? У меня также есть смутное понимание того, как работает этот сеанс запросов.

key = '***'
sec = '***'
nonce = str(int(time.time() * 1000))
uri = 'https://poloniex.com/tradingApi'
payload = {'command': 'returnBalances', 'nonce': nonce}
s = Session()
req = Request('POST', uri, headers={'key': key, 'sign': signature})
signature = hmac.new(str.encode(self.sec, 'utf-8'), str.encode(uri, 'utf-8'), hashlib.sha512).hexdigest()
prepped = req.prepare()
prepped.body = requests.get(uri, params={'command': 'returnBalances', 'nonce': nonce})
prepped.headers = {'key': key, 'sign': signature}
resp = s.send(prepped, timeout=10)
print(resp.status_code)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...