📝

pybotters 1.5 ハイライト

2024/09/07に公開

TL;DR

pybotters 1.5 をリリースしました 🎉

https://github.com/pybotters/pybotters/releases/tag/v1.5.0

今回の更新では以下の取引所サポートが追加されました。

  • 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 にまとめてあります。 まとめてダウンロードしたい場合は以下を参照してください。

https://gist.github.com/MtkN1/3af5b7fa5ae00d9999d260f83ebb680d


DataStore については未実装です。 現状需要があるか分からないので未定ではありますが、コントリビュートは歓迎しています。


今回はなんとなく Zenn 記事として pybotters リリースハイライトを紹介しました 📝

これまでは GitHub Releases で毎回熱量多めのハイライトを書いていましたが >1.0 からはリリースノートを自動化したので Pull Request タイトルのみのあっさりした形式になっています。

pybotters の各取引所サンプルコードについてですが、過去はリリースノートにあったり、Docs の Examples にあったり、今回のように Zenn に投稿してみたりと場所が断片化しており申し訳ございません。 本来は Docs に CHANGELOGBlog のようなセクションを作って投稿するのが OSS プロジェクトらしいやり方の気がするのですが、やり方がまとまっていないので実験的に Zenn に投稿しました。 課題として認識しており、情報を一元化しようと検討しています


最後まで読んで頂き誠にありがとうございます! よろしければ以下についてもよろしくお願いします 🙏

GitHubで編集を提案

Discussion