MEXC API WebSocket用户数据流接入:签名验证失败问题求助
MEXC API WebSocket用户数据流接入:签名验证失败问题求助
我现在在尝试接入MEXC API的WebSocket用户数据流,虽然已经研究过官方文档,但还是没法成功建立连接。我知道第一步得先创建监听密钥(listen key),但一直生成不了有效的签名,怎么试都卡在这了。
这是我用来创建监听密钥的代码:
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."}
如果有人能指点一下正确的实现方式,我会非常感激!
备注:内容来源于stack exchange,提问作者Gregor Sotošek




