Våra privata flöden för WebSocket API:er (såsom flödet för openOrders och flödet för addOrder) kräver en autentiseringstoken från REST API:s GetWebSocketsToken-slutpunkt.
Följande är exempelkod i Python 3 för att anropa REST API:s GetWebSocketsToken-slutpunkt, tolka JSON-svaret och mata ut den nya WebSocket-autentiseringstokenen:
#!/usr/bin/env python3
# Importera nödvändiga Python-bibliotek
import time
import base64
import hashlib
import hmac
import urllib.request
import json
# Kopiera/klistra in API:s publika nyckel och API:s privata nyckel som visas i kontohanteringen
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'
# Variabler (API-metod, nonce och POST-data)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce
# Kryptografiska hash-algoritmer
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)
# Koda signatur till base64-format som används i API-Sign-värdet
api_signature = base64.b64encode(api_hmac.digest())
# HTTP-förfrågan (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()
# Mata ut API-svar
print(json.loads(api_response)['result']['token'])
API:s publika/privata nyckelvariabler (api_key och api_secret) bör ersättas med en ny API-nyckel från ditt Kraken-konto, varefter koden kan användas för att hämta en WebSocket-autentiseringstoken för samma konto. Observera att API-nyckeln måste ha behörigheten Övrigt -> Åtkomst till WebSockets API aktiverad.