やりたいこと
前回の記事で、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: 注文に失敗した。
まとめ
今回は注文の結果だけをログに出力しましたが、注文方法や金額などさまざまな情報を取得できます。
詳細は公式ガイド(注文の一覧を取得)をご確認ください。