我尝试向yobit API请求R. 要访问完成身份验证所需的某些方法:
每个Trade API请求都应通过身份验证。 通过发送以下HTTP标题来完成身份验证:
密钥 - API密钥,例如:FAF816D16FFDFBD1D46EEF5D5B10D8A2
签名 - 数字签名,POST参数(?param0 = val0& ...& nonce = 1)由密钥通过HMAC-SHA512签名
后续请求中的参数nonce(最小值为1,最大值为2147483646)应超过前一个请求。要使nonce无效,必须生成新密钥。
我的代码:
nonce=1
API_KEY = "0B02AD5AF57854184D68D3D1D4D980F9"
API_SECRET = "89b20f882220b5dc6feeb33253c25ba3"
Body=paste('method=getInfo&nonce=',nonce, sep="")
sign = hmac(API_SECRET, Body, algo="sha512")
title=add_headers('Content-type'='application/x-www-form-urlencoded', Key = API_KEY, Sign = sign)
rep=POST('https://yobit.net/tapi', body=Body, headers=title, encode='form')
nonce=nonce+1
来自服务器的响应:
"{\"success\":0,\"error\":\"invalid key, sign, method or nonce\"}"
感谢您的帮助!
答案 0 :(得分:0)
这是我在节点js和它的工作中完成的。
const crypto = require("crypto");
var apikey = 'apikey';
var secret = 'secret';
var signature = "method=getInfo&nonce="+ nonce;
console.log(signature);
var hmacsignature = crypto.createHmac('sha512', secret).update( signature ).digest('hex');
var headers = {
'Content-Type': 'application/x-www-form-urlencoded',
'Key': apikey,
'Sign': hmacsignature
};
var options = {
url: 'https://yobit.net/tapi',
method: 'POST',
body: signature,
headers: headers
}
console.log(options);
request1(options, function (error, response, body) {
res.send(body);
});