Bien que les flux de données de marché (https://www.kraken.com/en-gb/features/websocket-api#message-ticker) WebSocket soient disponibles publiquement, les flux privés (https://www.kraken.com/en-gb/features/websocket-api#message-ownTrades) WebSocket qui accèdent à un compte Kraken doivent être protégés via une authentification sécurisée.
Notre API REST (https://www.kraken.com/features/api) fournit déjà un mécanisme d'authentification sécurisé utilisant des clés API et des algorithmes de hachage cryptographiques (https://support.kraken.com/hc/en-us/articles/360029054811-What-is-the-authentication-algorithm-for-private-endpoints-), c'est pourquoi notre authentification WebSocket en profite pour offrir le même niveau de sécurité élevé.
Pour s'abonner à un flux privé WebSocket, le client API doit d'abord demander un jeton d'authentification via l'API REST puis fournir le même jeton lors de l'abonnement aux flux privés:
Instructions étape par étape
Les flux privés WebSocket sont accessibles en utilisant la procédure suivante:
1. Générez une clé API (https://support.kraken.com/hc/en-us/articles/360000919966-How-to-generate-an-API-key-pair-) via le menu déroulant de votre nom du profil en haut à droite -> Sécurité -> API page de gestion de compte (https://www.kraken.com/en-gb/sign-in) et assurez-vous d'activer la permission Access WebSockets API:
2. Appelez l'endpoint GetWebSocketsToken (https://www.kraken.com/features/api#ws-auth) de l'API REST pour récupérer un nouveau jeton d'authentification WebSocket, qui ressemblera à ceci:
WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f
Les jetons d'authentification ont une validité initiale de 15 minutes (900 secondes), mais une fois qu'un jeton est utilisé pour s'abonner à un flux privé, le jeton restera valide tant que l'abonnement reste actif.
Notre exemple Python 3 (https://support.kraken.com/hc/en-us/articles/360034437672) montre comment récupérer un jeton d'authentification WebSocket à partir de l'endpoint GetWebSocketsToken de l'API REST en seulement quelques lignes de code.
3. Connectez-vous à l'API WebSocket via l'URL du flux privé wss://ws-auth.kraken.com/ et abonnez-vous soit au flux openOrders, au flux ownTrades ou au deux.
Le jeton d'authentification WebSocket doit être fourni dans le message d'abonnement en tant que valeur du champ du jeton:
{"event":"subscribe", "subscription":{"name":"openOrders", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}
{"event":"subscribe", "subscription":{"name":"ownTrades", "token":"WOg6IVQ5RfogMzkhH25WOg6IVQ5RqhP+U3ZprQVnh7f"}}
Problèmes connus
EService:Unavailable - Si vous recevez une erreur "service indisponible" lorsque vous vous abonnez à un flux privé, vous devez réessayer l'abonnement. L'erreur d'indisponibilité du service n'est que temporaire, une tentative d'abonnement ultérieure devrait donc réussir.