Я получаю сообщение об ошибке «Недопустимый одноразовый номер в полезной нагрузке» при подключении через веб-сокет к обмену poloniex!
Я пробовал различные способы кодирования полезной нагрузки, но мне кажется, что я не могу обойти эту ошибку. Я знаю, что мой nonce работает, так как я использовал тот же метод с открытыми методами API.
import websocket
import threading
import time
import json
import codecs
import hmac
import time
import pandas as pd
import numpy as np
import hashlib
Key = 'KEY HERE'
sign = 'SECRET HERE'
def on_message(ws, message):
json_msg = json.loads(message)
print(json_msg)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
print("ON OPEN")
def run(*args):
nonce = int(round(time.time()-599900000)*100)
hashed = hmac.new(Sign.encode(), digestmod=hashlib.sha512)
sign = hashed.hexdigest()
ws.send(json.dumps({'command':'subscribe','channel':'1000','key':Key,'payload':nonce,'sign':sign}))
threading.Thread(target=run).start()
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("wss://api2.poloniex.com/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
Я ожидаю увидеть вывод данных, как описано в документации API poloniex https://docs.poloniex.com/#websocket-api
PS: Вам нужно будет использовать свой собственный API из биржи для запуска этого скрипта!