4.APIでデータのやり取り(4)ビットフライヤー用ラッパー「pybitflyer」 「お手製 python bitflyer Trading Bot」

難しいprivateAPIアクセスルール

bitflyerのapiにアクセスする時に、以下の決まりがある。

以下の情報を HTTP リクエストヘッダに含めます。

    • ACCESS-KEY: 開発者ページで発行した API key
    • ACCESS-TIMESTAMP: リクエスト時の Unix Timestamp
    • ACCESS-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なんだよね