一瞬落ちていたcoincheck の WebSocket API だが、 REST APIと違ってポーリングの必要がなく、システムトレードを行うためのデータ収集には欠かせない。
結構簡単なので、以下にメモがてらコードを記載する。
Node.js v7.3.0 で、npm -i ws
している。
const WebSocket = require('ws'); function subscribe(channel, callback) { const ws = new WebSocket('wss://ws-api.coincheck.com/'); ws.on('open', () => { ws.send(JSON.stringify({ type: 'subscribe', channel })); }); ws.on('message', (data) => { callback(JSON.parse(data)); }); ws.on('close', () => { console.error(`coincheck ${channel} is disconnected`); process.exit(-1); }); ws.on('error', () => { console.error(`coincheck ${channel} error`); process.exit(-1); }); }
上記関数は以下のように呼び出す。
subscribe('btc_jpy-trades', (d) => { /* d = [ "ID", "取引ペア", "注文のレート", "注文での量", "注文方法" ] */ });
(落ちていなければ)、上記のコードで売買履歴が取れるはず。
しかし、日付が入っていないのでいまいち使えないし、配列なのでフィールドが増やせない。 どうしてここのAPIはこんなに使いづらいのか。
(了)
- 作者: 羽田野太巳
- 出版社/メーカー: ソシム
- 発売日: 2014/01/20
- メディア: 単行本
- この商品を含むブログ (2件) を見る
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2017/08/09
- メディア: 単行本
- この商品を含むブログを見る