Yobit API POST请求(R)

时间:2018-02-28 23:26:21

标签: r api httr

我尝试向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\"}"

感谢您的帮助!

1 个答案:

答案 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);
});