如何订阅 Kraken WebSocket 私有数据源

上次更新时间: 2025年4月1日

虽然 WebSocket 市场数据源是公开可用的,但访问 Kraken 账户的 WebSocket 私有数据源必须通过安全认证进行保护。

我们的 REST API 已经提供了一种使用 API 密钥和加密哈希算法的安全认证机制,因此我们的 WebSocket 认证利用了这一点,以提供同样高水平的安全性。

为了订阅 WebSocket 私有数据源,API 客户端必须首先通过 REST API 请求一个认证令牌,然后在订阅私有数据源时提供相同的令牌:

API_Flowchart_10072020.png

分步说明

可以使用以下步骤访问 WebSocket 私有数据源:

1. 通过 账户管理页面右上角的 个人资料名称下拉菜单 -> 安全 -> API 生成 API 密钥,并确保启用 访问 WebSockets API 权限:

General_SecurityDropdown_04272021.png
API_KeyPermissionsCheckboxes_03122021.png

2. 调用 REST API GetWebSocketsToken 端点以检索新的 WebSocket 认证令牌,该令牌将类似于以下内容:

WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f

认证令牌的初始有效期为 15 分钟(900 秒),但一旦令牌用于订阅私有数据源,只要订阅保持活跃,该令牌就将保持有效。

我们的 Python 3 示例展示了如何通过几行代码从 REST API GetWebSocketsToken 端点检索 WebSocket 认证令牌。

3. 通过私有数据源 URL wss://ws-auth.kraken.com/ 连接到 WebSocket API,并订阅 openOrders 数据源、ownTrades 数据源或两者。

WebSocket 认证令牌必须在订阅消息中作为 token 字段的值提供:

  • {"event":"subscribe", "subscription":{"name":"openOrders", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}

  • {"event":"subscribe", "subscription":{"name":"ownTrades", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}

已知问题

  • EService:Unavailable - 如果您在订阅私有数据源时收到服务不可用

    错误,您应该再次尝试订阅。服务不可用错误只是暂时的,因此后续的订阅尝试应该会成功。

需要更多帮助吗?