もくじ
やりたいこと
自分の口座の日本円、ビットコイン、イーサリアムの保有量と使用可能額(数量)を取得する
Private API の呼出には API key による認証が必要
Private API の呼出には、API key による認証が必要です。
公式ガイドではNode.js のサンプルが掲載されていますが、そのままでは Google Apps Script で動きません。
ACCESS-SIGN
は、ACCESS-TIMESTAMP, HTTP メソッド, リクエストのパス, リクエストボディ を文字列として連結したものを、 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を使って実行してみます。
まだアカウントを持っていない方はこちら。