De privéfeeds van onze WebSocket API's (zoals de openOrders feed addOrder feed) vereisen een authenticatietoken van het REST API GetWebSocketsToken eindpunt.
Hieronder vindt u voorbeeld Python 3-code voor het aanroepen van het REST API GetWebSocketsToken eindpunt, het parsen van de JSON-respons en het uitvoeren van het nieuwe WebSocket-authenticatietoken:
#!/usr/bin/env python3
# Vereiste Python-bibliotheken importeren
import time
import base64
import hashlib
import hmac
import urllib.request
import json
# Kopieer/plak de openbare API-sleutel en de privé API-sleutel zoals weergegeven in accountbeheer
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'
# Variabelen (API-methode, nonce en POST-gegevens)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce
# Cryptografische hash-algoritmen
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)
# Codeer de handtekening in base64-formaat dat wordt gebruikt in de API-Sign-waarde
api_signature = base64.b64encode(api_hmac.digest())
# HTTP-verzoek (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-respons uitvoeren
print(json.loads(api_response)['result']['token'])
De openbare/privé API-sleutelvariabelen (api_key en api_secret) moeten worden vervangen door een nieuwe API-sleutel van uw Kraken-account, waarna de code kan worden gebruikt om een WebSocket-authenticatietoken voor hetzelfde account op te halen. Houd er rekening mee dat de API-sleutel de Overige -> Toegang tot WebSockets API toestemming ingeschakeld moet hebben.