pybotters 1.5 ハイライト
TL;DR
pybotters 1.5 をリリースしました 🎉
今回の更新では以下の取引所サポートが追加されました。
- OKJ (旧 OKCoinJapan) の API (REST/WebSocket) 認証サポート
- BitTrade (旧 Huobi Japan) の API (REST/WebSocket) 認証サポート
この記事では利用可能になった上記二つの取引所での Private API 呼び出しのサンプルコードを簡単にご紹介します。
OKJ
API Docs: https://dev.okcoin.jp/en/
OKJ は API 認証情報としてキー、シークレットに加えてパスフレーズの三つが必要な取引所です。 本家 OKX と同じ仕様ですね。 ただ API 仕様は所感としては本家 OKX とは似てるようで似てない感じです。
REST API
残高を取得する サンプルです。 今回の更新によって pybotters によってリクエストの署名が自動で処理されます。
リクエストの方法的にも基本的な形ですね。 パスフレーズが必要な点以外、他の取引所と比べても大きく違う仕様はありませんね。
WebSocket API
WebSocket で ユーザーのスポットアカウント情報を取得する サンプルです。 接続開始時に pybotters によって自動で署名メッセージが送信されます。
今回の pybotters の更新とは直接は無関係ではありますが OKJ には WebSocket メッセージの Deflate 圧縮仕様 があり、少しややこしいので注意が必要です:
- 受信するメッセージはバイトメッセージになるので
ws_connect()
のハンドラ引数はhdlr_bytes
を指定する必要があります - 展開するのに
zlib
でひと手間加える必要があります
BitTrade
API Docs: https://api-doc.bittrade.co.jp/
BitTrade の API 認証情報は従来通りよくあるキー、シークレットの二種類タイプですね。 ここの特徴としては数少ない販売所の API があるのが面白いです。
REST API
残高を取得する サンプルです。 同様に pybotters によってリクエストの署名が自動で処理されます。
これも pybottesr 自体とは関係なく BitTrade 側の仕様ですが、一発で残高を取得できないのは面倒ですね。
WebSocket API
WebSocket で ユーザーのアカウント情報を取得する サンプルです。 接続開始時に pybotters によって自動で署名メッセージが送信されます。 こちらは特殊な仕様はないですね。
ただし Public WebSocket の方は GZIP 圧縮されている ので OKJ のようにひと手間加える必要があることに注意です。
おわりに
上記のサンプルコードらは Gist にまとめてあります。 まとめてダウンロードしたい場合は以下を参照してください。
DataStore については未実装です。 現状需要があるか分からないので未定ではありますが、コントリビュートは歓迎しています。
今回はなんとなく Zenn 記事として pybotters リリースハイライトを紹介しました 📝
これまでは GitHub Releases で毎回熱量多めのハイライトを書いていましたが >1.0
からはリリースノートを自動化したので Pull Request タイトルのみのあっさりした形式になっています。
pybotters の各取引所サンプルコードについてですが、過去はリリースノートにあったり、Docs の Examples にあったり、今回のように Zenn に投稿してみたりと場所が断片化しており申し訳ございません。 本来は Docs に CHANGELOG か Blog のようなセクションを作って投稿するのが OSS プロジェクトらしいやり方の気がするのですが、やり方がまとまっていないので実験的に Zenn に投稿しました。 課題として認識しており、情報を一元化しようと検討しています。
最後まで読んで頂き誠にありがとうございます! よろしければ以下についてもよろしくお願いします 🙏
- ⭐ pybotters リポジトリ を Star 付けて評価する
- 𝕏 で @MtkN1XBt をフォローする
- 💖 GitHub スポンサー になって支援する
Discussion