【Google Apps ScriptでbitFlyer API】資産残高を取得する

やりたいこと

自分の口座の日本円、ビットコイン、イーサリアムの保有量と使用可能額(数量)を取得する

Private API の呼出には API key による認証が必要

Private API の呼出には、API key による認証が必要です。
公式ガイドではNode.js のサンプルが掲載されていますが、そのままでは Google Apps Script で動きません。

ACCESS-SIGN は、ACCESS-TIMESTAMPHTTP メソッドリクエストのパスリクエストボディ を文字列として連結したものを、 API secret で HMAC-SHA256 署名を行った結果です。

ここが厄介な部分です。

GASでHMAC-SHA256 署名

GASでHMAC-SHA256 署名をするには Utilities.computeHmacSha256Signature を使います。
…が、それだけだと不十分。

.digest(‘hex’)をGASで処理する

var sign = crypto.createHmac(‘sha256’, secret).update(text).digest(‘hex’);

公式ガイドのサンプルにあるコードのうち、まだ最後の.digest(‘hex’) ができていない様子。
google先生に聞いたところ、stack overflowにドンピシャの回答を発見!(英語だけど)
これを参考に、

var sign = signature.reduce(function(str,chr){
chr = (chr < 0 ? chr + 256 : chr).toString(16);
return str + (chr.length==1?'0':'') + chr;
},'');

を付け足したら、動くようになりました。

Google Apps Script サンプルコード(資産残高を取得)

実行結果

実行結果はログに出力しています。(メニュー > 表示 > ログ で表示できます)
bitFlyer で取り扱っているすべての通貨とその数量を出力してます。

  • JPY…日本円
  • BTC…ビットコイン
  • BCH…ビットコインキャッシュ
  • ETH…イーサリアム
  • ETC…イーサクラシック
  • LTC…ライトコイン

まとめ

今回はそれぞれの通貨の保有数量を出力できました。
次の記事では、いよいよ注文(指値注文)をAPIを使って実行してみます。

bitFlyer ビットコインを始めるなら安心・安全な取引所で