【Google Apps ScriptでbitFlyer API】注文の一覧(結果)を取得

やりたいこと

前回の記事で、GASからbitFlyer API で注文を出しました。
今回は、その注文の結果がどうなったか(約定したか)を確認します。

path にパラメータをつけてIDを指定

 var path = '/v1/me/getchildorders';
  // path にパラメータを追加
  path = path + '?child_order_acceptance_id=' + acceptance_id;

var path = '/v1/me/getchildorders';
だけであれば注文の一覧を取得します。
今回は、注文した結果を個別で取得したいので、path にパラメータを追加して、受付IDを指定します。

サンプルコード(注文を指定して状態を取得)

// APIkeyを設定
var key = '********************';
var secret = '*********************************';

function getChildOrderState(){
  
  // 参照したい注文の受付ID
  var acceptance_id = 'JRF20170802-004147-044673';
  
  var timestamp = Date.now().toString();
  var method = 'GET';
  var path = '/v1/me/getchildorders';
  // path にパラメータを追加
  path = path + '?child_order_acceptance_id=' + acceptance_id;
  
  var text = timestamp + method + path; // GETなので bodyはなくてOK
  var signature = Utilities.computeHmacSha256Signature(text, secret);
  var sign = signature.reduce(function(str,chr){
    chr = (chr < 0 ? chr + 256 : chr).toString(16);
    return str + (chr.length==1?'0':'') + chr;
  },'');
  
  var url = 'https://api.bitflyer.jp' + path;
  var options = {
      method: method,
      headers: {
        'ACCESS-KEY': key,
        'ACCESS-TIMESTAMP': timestamp,
        'ACCESS-SIGN': sign,
        'Content-Type': 'application/json'
      }
  };

  //送信してレスポンス取得
  var response = UrlFetchApp.fetch(url, options);

  // レスポンスをJSONオブジェクトに
  var json = JSON.parse(response.getContentText());

  // ステータスを取り出す
  for each(var obj in json){
    var state = obj.child_order_state;
  }
  Logger.log(acceptance_id + ": " + state);
  return state;
}

実行結果

COMPLETED となっていれば全額が取引完了しています。

ステータスは以下のとおりです。

  • ACTIVE: オープン(取引未完了)な注文。
  • COMPLETED: 全額が取引完了している。
  • CANCELED: お客様がキャンセルした。
  • EXPIRED: 有効期限に到達したため取り消された。
  • REJECTED: 注文に失敗した。

まとめ

今回は注文の結果だけをログに出力しましたが、注文方法や金額などさまざまな情報を取得できます。
詳細は公式ガイド(注文の一覧を取得)をご確認ください。

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