So rufen Sie ein WebSocket-Authentifizierungstoken ab – Beispielcode in Python 3

Zuletzt aktualisiert: 1. Apr. 2025

Die privaten Feeds unserer WebSocket-APIs (wie der openOrders-Feed und der addOrder-Feed) erfordern ein Authentifizierungstoken vom REST-API-GetWebSocketsToken-Endpunkt.

Im Folgenden finden Sie ein Beispiel für Python 3-Code zum Aufrufen des REST-API- GetWebSocketsToken-Endpunkts, zum Parsen der JSON-Antwort und zur Ausgabe des neuen WebSocket-Authentifizierungstokens:

#!/usr/bin/env python3

# Erforderliche Python-Bibliotheken importieren
import time
import base64
import hashlib
import hmac
import urllib.request
import json

# Öffentlichen API-Schlüssel und privaten API-Schlüssel wie in der Kontoverwaltung angezeigt kopieren/einfügen
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'

# Variablen (API-Methode, Nonce und POST-Daten)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce

# Kryptografische Hash-Algorithmen
api_sha256 = hashlib.sha256(api_nonce.encode('utf-8') + api_post.encode('utf-8'))
api_hmac = hmac.new(base64.b64decode(api_secret), api_path.encode('utf-8') + api_sha256.digest(), hashlib.sha512)

# Signatur in das im API-Sign-Wert verwendete Base64-Format kodieren
api_signature = base64.b64encode(api_hmac.digest())

# HTTP-Anfrage (POST)
api_request = urllib.request.Request('https://api.kraken.com/0/private/GetWebSocketsToken', api_post.encode('utf-8'))
api_request.add_header('API-Key', api_key)
api_request.add_header('API-Sign', api_signature)
api_response = urllib.request.urlopen(api_request).read().decode()

# API-Antwort ausgeben
print(json.loads(api_response)['result']['token'])

Die Variablen für den öffentlichen/privaten API-Schlüssel (api_key und api_secret) sollten durch einen neuen API-Schlüssel von Ihrem Kraken-Konto ersetzt werden, wonach der Code verwendet werden kann, um ein WebSocket-Authentifizierungstoken für dasselbe Konto abzurufen. Beachten Sie, dass der API-Schlüssel die Berechtigung Sonstiges -> Zugriff auf WebSockets-API aktiviert haben muss.

Brauchst du weitere Hilfe?