Как подписаться на приватные каналы WebSocket Kraken

Последнее обновление: 1 апр. 2025 г.

Хотя каналы рыночных данных WebSocket общедоступны, приватные каналы WebSocket, которые получают доступ к учетной записи Kraken, должны быть защищены с помощью безопасной аутентификации.

Наш 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. Вызовите конечную точку GetWebSocketsToken REST API, чтобы получить новый токен аутентификации WebSocket, который будет выглядеть примерно так:

WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f

Токены аутентификации имеют начальный срок действия 15 минут (900 секунд), но как только токен используется для подписки на приватный канал, он остается действительным до тех пор, пока подписка активна.

Наш пример на Python 3 показывает, как получить токен аутентификации WebSocket из конечной точки GetWebSocketsToken REST API всего за несколько строк кода.

3. Подключитесь к WebSocket API через URL приватного канала wss://ws-auth.kraken.com/ и подпишитесь на канал openOrders, канал ownTrades или оба канала.

Токен аутентификации WebSocket должен быть предоставлен в сообщении подписки в качестве значения поля токена:

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

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

Известные проблемы

  • EService:Unavailable — Если вы получаете ошибку «сервис недоступен»

     при подписке на приватный канал, вам следует повторить попытку подписки. Ошибка «сервис недоступен» является временной, поэтому последующая попытка подписки должна быть успешной.

Нужна дополнительная помощь?