Nuestros feeds privados de WebSocket API (como el feedopenOrders (https://www.kraken.com/en-gb/features/websocket-api#message-openOrders)) requieren un token de autenticación del endpoint de API REST GetWebSocketsToken (https://www.kraken.com/features/api#ws-auth) .
El siguiente es un código de ejemplo de Python 3 para llamar al endpoint de REST API GetWebSocketsToken , analizando la respuesta JSON y generando el token de autenticación de WebSocket:
#!/usr/bin/env python3import time, base64, hashlib, hmac, urllib.request, jsonapi_nonce = bytes(str(int(time.time()*1000)), "utf-8")api_request = urllib.request.Request("https://api.kraken.com/0/private/GetWebSocketsToken", b"nonce=%s" % api_nonce)api_request.add_header("API-Key", "ZCx760KshE/AQBKUvBoxgNtp0NUwGh+Tes32FeFaly5aF")api_request.add_header("API-Sign", base64.b64encode(hmac.new(base64.b64decode("HrvdSboiiCdki2NErtb+F1t9ZNpEgWoL72dJRFdRN+gXT9zusw4vQUYPLgKT18+w=="), b"/0/private/GetWebSocketsToken" + hashlib.sha256(api_nonce + b"nonce=%s" % api_nonce).digest(), hashlib.sha512).digest()))print(json.loads(urllib.request.urlopen(api_request).read())['result']['token'])
La clave API (la clave pública y la clave privada) que se muestran arriba deben reemplazarse con una clave API de su cuenta en Kraken, y luego el código puede usarse para recuperar un token de autenticación de WebSocket para la misma cuenta.