我目前正在尝试使用HMAC-SHA512签名在网站上进行身份验证,以便通过网站api请求一些个人详细信息。
网站为用户显示一些代码(但不在r!中):
$apikey='xxx';
$apisecret='xxx';
$nonce=time();
$uri='https://bittrex.com/api/v1.1/market/getopenorders?apikey='.$apikey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);
我试图在r:
中重现代码require("curl")
require("digest")
require(jsonlite)
require(httr)
require("RCurl")
第一步似乎很容易:
apikey = "2...XXX...3"
apisecret = "7...XXX...c"
第一个问题:我不知道如何输入时间,我假设Sys.time()不适合这里,也不是as.numeric(Sys.time()),因为它不是一个整数(也许我是已经错了......)
nonce = floor(as.numeric(Sys.time()))
然后:
uri = paste0('https://bittrex.com/api/v1.1/market/getopenorders?`apikey=',apikey,'&nonce=',nonce)`
sign = hmac(apisecret,uri,"sha512")
对于最后两个步骤,我尝试过:
ch = binaryBuffer(uri)
curlSetOpt(ch, .forceHeaderNames = TRUE, sign)
execResult = GET(ch)
并收到以下错误消息:
Error in as.character.default(url) :
no method for coercing this S4 class to a vector
有没有人注意到我的代码出了什么问题?任何评论/问题/建议都将受到高度赞赏!
答案 0 :(得分:0)
以下为我工作
sudo update-alternatives --config java