Cách truy xuất mã thông báo xác thực WebSocket - Mã ví dụ bằng Python 3

Cập nhật lần cuối: 1 thg 4, 2025

Các nguồn cấp dữ liệu riêng tư của API WebSocket của chúng tôi (chẳng hạn như nguồn cấp dữ liệu openOrders và nguồn cấp dữ liệu addOrder) yêu cầu mã thông báo xác thực từ điểm cuối GetWebSocketsToken của API REST.

Sau đây là mã Python 3 mẫu để gọi điểm cuối GetWebSocketsToken của API REST, phân tích phản hồi JSON và xuất mã thông báo xác thực WebSocket mới:

#!/usr/bin/env python3

# Nhập các thư viện Python cần thiết
import time
import base64
import hashlib
import hmac
import urllib.request
import json

# Sao chép/dán khóa công khai API và khóa riêng tư API như hiển thị trong quản lý tài khoản
api_key = 'COPY/PASTE API PUBLIC KEY HERE'
api_secret = 'COPY/PASTE API PRIVATE KEY HERE'

# Các biến (phương thức API, nonce và dữ liệu POST)
api_path = '/0/private/GetWebSocketsToken'
api_nonce = str(int(time.time()*1000))
api_post = 'nonce=' + api_nonce

# Thuật toán băm mật mã
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)

# Mã hóa chữ ký sang định dạng base64 được sử dụng trong giá trị API-Sign
api_signature = base64.b64encode(api_hmac.digest())

# Yêu cầu HTTP (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()

# Xuất phản hồi API
print(json.loads(api_response)['result']['token'])

Các biến khóa công khai/riêng tư API (api_keyapi_secret) nên được thay thế bằng một khóa API mới từ tài khoản Kraken của bạn, sau đó mã có thể được sử dụng để truy xuất mã thông báo xác thực WebSocket cho cùng một tài khoản. Lưu ý rằng khóa API phải có quyền Khác -> Truy cập API WebSockets được bật.

Bạn cần thêm trợ giúp?