Подпись в mexc API – доступ к веб-сокетуPython

Программы на Python
Ответить
Anonymous
 Подпись в mexc API – доступ к веб-сокету

Сообщение Anonymous »

Я пытаюсь получить доступ к потокам пользовательских данных веб-сокета в mexc API. Прочитал документацию, но подключиться так и не удалось. Я считаю, что мне нужно сначала создать ключ прослушивания, но мне не удалось сделать действительную подпись. Это мой код:

Код: Выделить всё

def create_listen_key(api_key, api_secret):
url = "https://api.mexc.com/api/v3/userDataStream"

timestamp = str(int(time.time() * 1000))

params = {"please_sign_it": None}

signature = generate_signature(api_key=api_key, api_secret=api_secret, ign_params=params,
req_time=timestamp)

paramsWithSignature = {
"please_sign_it": None,
"timestamp": timestamp,
"signature": signature
}

headers = {
"X-MEXC-APIKEY": api_key,
"Content-Type": "application/json",
}
response = requests.post(url, headers=headers, data=paramsWithSignature)

if response.status_code == 200:
return json.loads(response.content)
else:
raise Exception(f"Failed to create listen key: {response.text}")
а это функция генерации подписи

Код: Выделить всё

def generate_signature(api_key, api_secret, req_time, sign_params=None):
ic("def generate_signature")

if sign_params:
sign_params = urlencode(sign_params, quote_via=quote)
ic(sign_params)

to_sign = f"{api_key}{req_time}{sign_params}"
else:
to_sign = f"{api_key}{req_time}"

sign = hmac.new(api_secret.encode('utf-8'), to_sign.encode('utf-8'), hashlib.sha256).hexdigest()
return sign
Я думаю, что перепробовал все варианты, но что бы я ни делал:

Код: Выделить всё

Exception: Failed to create listen key: {"code":700002,"msg":"Signature for this request is not valid."}
Если кто-то подскажет, как это сделать, буду очень признателен.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ket-access
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»