前提・実現したいこと
・Javascriptを使って、仮想通貨取引所のAPIを使用し自動売買プログラムのサンプルプログラムを試しています。
・Bitflyer APIの“GET /v1/me/getcollateral”の実行して証拠金の状態を取得したいです。
ここに質問の内容を詳しく書いてください:
・Bitflyer APIの“GET /v1/me/getcollateral”の実行時にBitflyerAPI独自のエラーが出ました。
・サンプルコードのエラーなのでコード自体のエラーではないと思います。
・他のBitflyer APIの実行時は正しく行われます。
・Bitflyer APIのドキュメントを見ましたがエラーメッセージについて書かれておりませんでした。
発生している問題・エラーメッセージ
{ status: -500, error_message: 'Invalid signature', data: null }
該当のソースコード
ソースコード(test.js):
var request = require('request');
var crypto = require('crypto');
const ApiKey = 'xxxxxxx';
const ApiSecret = 'xxxxxxx';
const API_VERSION = '/v1/';
const PRODUCT_CODE = 'FX_BTC_JPY';
const GET = 'GET';
const POST = 'POST';
//CALL-S
function call(method, path, body, callback){
var timestamp = Date.now().toString(); var text = timestamp + method + API_VERSION + path + body; var sign = crypto.createHmac('sha256', ApiSecret).update(text).digest('hex'); var url = 'https://api.bitflyer.jp' + API_VERSION + '/' + path;
//変更前-s
var options = {
url: url,
method: method,
body: body,
headers: {
'ACCESS-KEY': ApiKey,
'ACCESS-TIMESTAMP': timestamp,
'ACCESS-SIGN': sign,
'Content-Type': 'application/json'
}
};
//変更前-e
request(options, callback);
}
//CALL-E
//評価損益を取得▼
function getCollateral(callback) {
var body = JSON.stringify({
product_code: PRODUCT_CODE,
});
call(GET, 'me/getcollateral?product_code=' + PRODUCT_CODE, body, function(err, response, payload) {
var response = JSON.parse(payload);
if (callback) {
callback(response.type)
console.log(response)
}
})
}
//評価損益を取得▲
//プロシージャーはここから開始
//評価損益を取得▽
getCollateral(function(response){
})
試したこと
・Bitflyer APIのドキュメントにもエラーについて書いてありませんでした。
・エラーをググってみましたが答えは見つかりませんでした。
・サンプルコードを提供してくれたサイトのコメント欄にも質問しました。
・エラーメッセージのInvalid signature(無効なシグネチャー)の意味に付いて考えましたが、ちょっとまだわかりません。
補足情報(FW/ツールのバージョンなど)
・windows10(64bit)
・javascript:nodeパッケージのバージョンはv10.16.0です。
あなたの回答
tips
プレビュー