4.APIでデータのやり取り(4)ビットフライヤー用ラッパー「pybitflyer」 「お手製 python bitflyer Trading Bot」
難しいprivateAPIアクセスルール
bitflyerのapiにアクセスする時に、以下の決まりがある。
以下の情報を HTTP リクエストヘッダに含めます。
ACCESS-KEY
: 開発者ページで発行した API keyACCESS-TIMESTAMP
: リクエスト時の Unix TimestampACCESS-SIGN
: 以下の方法でリクエストごとに生成した署名
ACCESS-SIGN
は、ACCESS-TIMESTAMP, HTTP メソッド, リクエストのパス, リクエストボディ を文字列として連結したものを、 API secret で HMAC-SHA256 署名を行った結果です
以下のように暗号化やアドレスの連結など自分でやります。
面倒臭そうです。
message = timestamp + method + path_url signature = hmac.new(bytearray(cfg.api_secret.encode('utf-8')), message.encode('utf-8') , digestmod = hashlib.sha256 ).hexdigest() headers = { 'ACCESS-KEY' : cfg.api_key, 'ACCESS-TIMESTAMP' : timestamp, 'ACCESS-SIGN' : signature, 'Content-Type' : 'application/json' } response = requests.get( base_url + path_url , headers = headers) result=response.json()
(「難しそう」と訂正します)
こういったものを代行してやってくれるのが、ラッパーモジュール、「pybitflyer」
ありがたやpybitflyer。作者のおおかみやまさん自身の紹介ブログが有ります。
これを踏まえて、コードを書くと
api = pybitflyer.API(api_key=cfg.api_key, api_secret=cfg.api_secret) response = api.getpositions(product_code=cfg.product_code)
いや、簡単。これがPYTHONのモジュールの魅力か~(ハート)
いやいや、オブジェクト指向のクラスの力なのか~
バリバリ使うぞ「pybitlryer」
ただ、2016年8月製なので、古いんだよね。
他の方が新型を発表なさってるけど、検証数と言うか、情報は95:5くらいでpybitflyerなんだよね
ディスカッション
コメント一覧
まだ、コメントがありません