Python Poloniex API возвращает ошибку 422 - PullRequest
0 голосов
/ 07 мая 2018

У меня есть метод, который должен возвращать баланс от Poloniex через их API. Код ниже.

 def getBalance(self):
        polo_data = {"command": "returnBalances", "nonce": int(time.time() * 1000)}
        post_data = urllib.parse.urlencode(polo_data).encode()
        sig =  hmac.new(str.encode(self.SETTINGS.PRIVATE_KEY), post_data, hashlib.sha512).hexdigest()

        headers = {
            "Key": self.SETTINGS.PUBLIC_KEY,
            "Sign": sig}
        req = urllib.request.Request(self.SETTINGS.BASE_URI + self.SETTINGS.TRADE_DIR,
                                           data=post_data, headers=headers)
        try:
            res = urllib.request.urlopen(req)
            result =  json.loads(res.read().decode('utf-8'))
            print(result)
        except urllib.error.HTTPError as e:
            print(f'Headers: {e.headers}')
            print(f'Status: {e.status}')
            print(f'MSG: {e.msg}')
            print(f'reason: {e.reason}')
            print(f'url: {e.url}')
            print(f'Name: {e.name}')

Когда я запускаю этот код, я возвращаю сообщение HTTPError 422 Я думаю, что проблема будет с post_data. Я попытался сделать то же самое с запросами, и я получил сообщение об ошибке: «Ошибка: недопустимая команда» Но я не могу понять, где именно. С другой стороны, тот же код для команд на покупку / продажу , работающих как шарм.

Я использую Python 3.6.1

Есть предложения?

1 Ответ

0 голосов
/ 08 мая 2018

Я нашел решение по моему вопросу. Проблема была в одноразовом номере. Правильный код:

int(time.time() * 10000) 

не 1000 , а 10000

...