Hvordan hente et WebSocket-autentiseringstoken - Eksempelkode i Python 3

Sist oppdatert: 1. april 2025

Våre private WebSocket API-feeder (som for eksempel openOrders-feeden og addOrder-feeden) krever et autentiseringstoken fra REST API-endepunktet GetWebSocketsToken.

Følgende er eksempelkode i Python 3 for å kalle REST API-endepunktet GetWebSocketsToken, tolke JSON-svaret og vise det nye WebSocket-autentiseringstokenet:

#!/usr/bin/env python3

# Importer nødvendige Python-biblioteker
import time
import base64
import hashlib
import hmac
import urllib.request
import json

# Kopier/lim inn API offentlig nøkkel og API privat nøkkel som vist i kontoadministrasjon
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'

# Variabler (API-metode, nonce og POST-data)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce

# Kryptografiske 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)

# Koder signatur til base64-format brukt i API-Sign-verdi
api_signature = base64.b64encode(api_hmac.digest())

# HTTP-forespørsel (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()

# Skriv ut API-svar
print(json.loads(api_response)['result']['token'])

API offentlig/privat nøkkel-variablene (api_key og api_secret) bør erstattes med en ny API-nøkkel fra din Kraken-konto, hvoretter koden kan brukes til å hente et WebSocket-autentiseringstoken for samme konto. Merk at API-nøkkelen må ha tillatelsen Other -> Access WebSockets API aktivert.

Trenger du mer hjelp?