WebSocket kimlik doğrulama belirteci nasıl alınır - Python 3'te örnek kod

Son güncelleme: 1 Nis 2025

WebSocket API'lerimizin özel akışları (örneğin openOrders akışı ve addOrder akışı) REST API GetWebSocketsToken uç noktasından bir kimlik doğrulama belirteci gerektirir.

Aşağıda, REST API GetWebSocketsToken uç noktasını çağırmak, JSON yanıtını ayrıştırmak ve yeni WebSocket kimlik doğrulama belirtecini çıkarmak için örnek bir Python 3 kodu bulunmaktadır:

#!/usr/bin/env python3

# Gerekli Python kütüphanelerini içe aktarın
import time
import base64
import hashlib
import hmac
import urllib.request
import json

# Hesap yönetiminde gösterildiği gibi API genel anahtarını ve API özel anahtarını kopyalayıp yapıştırın
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'

# Değişkenler (API yöntemi, nonce ve POST verileri)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce

# Kriptografik karma algoritmaları
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)

# İmzayı API-Sign değerinde kullanılan base64 formatına kodlayın
api_signature = base64.b64encode(api_hmac.digest())

# HTTP isteği (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 yanıtını çıkarın
print(json.loads(api_response)['result']['token'])

API genel/özel anahtar değişkenleri (api_key ve api_secret), Kraken hesabınızdan yeni bir API anahtarı ile değiştirilmelidir; ardından kod, aynı hesap için bir WebSocket kimlik doğrulama belirteci almak üzere kullanılabilir. API anahtarının Diğer -> WebSockets API'ye Erişim iznine sahip olması gerektiğini unutmayın.

Daha fazla yardıma mı ihtiyacınız var?