Binance api 密钥和秘密查询字符串格式错误
Posted
技术标签:
【中文标题】Binance api 密钥和秘密查询字符串格式错误【英文标题】:Binance api key and secret queryString malformed 【发布时间】:2018-09-09 03:48:15 【问题描述】:我做错了什么?
我正在尝试获取我的帐户信息,但有些地方不正确。
var apiKey = 'myAPIKey';
var secret = 'mySecret';
var queryString = 'timestamp=' + Date.now();
var hash = CryptoJS.HmacSHA256(queryString,secret);
var url = 'https://api.binance.com/api/v3/account?'+ queryString + '&signature=' +hash;
$('.botonOrden').click(function()
$.ajax(
beforeSend: function(req)
req.setRequestHeader("X-MBX-APIKEY", apiKey);
,
type: 'GET',
url: url
)
.done(function()
console.log("success");
)
.fail(function()
console.log("error");
)
.always(function()
console.log("complete");
);
);
控制台说:
跨域请求被阻止:同源策略不允许读取位于https://api.binance.com/api/v3/account?timestamp=1522383455036&signature=MyHash的远程资源。 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。
我想我正在这样做,如文档中所示: https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#signed-endpoint-examples-for-post-apiv1order
https://github.com/binance-exchange/binance-official-api-docs/blob/master/rest-api.md#account-information-user_data
【问题讨论】:
我没有收到 Cross-Origin Request Blocked 错误,我收到 404 错误:codepen.io/spmsupun/pen/mxxRro 你需要开一个币安账户,把你的apiKey和Secret放在变量var apiKey中;和 var 秘密;然后它发送一个带有正确 url 的 GET 请求 即使它不应该出现 404 错误,它也应该显示无效密钥错误。尝试使用无效密钥,看看你得到了什么 你说得对,我的错,实际上我更新了代码让我更好地理解: $('.botonOrden').click(function() var invocation = new XMLHttpRequest(); var url = 'api.binance.com/api/v1/time'; callOtherDomain(); function callOtherDomain() if( invocation) invocation.open('GET', url, true); invocation.send(); ); 【参考方案1】:我在使用与您相同的“帐户”API 调用时遇到了 400 个错误。
我找到的解决方案是向币安服务器请求时间戳(使用 /api/v1/time),而不是自己生成。
其次,我必须将 &recvWindow=5000 添加到时间戳旁边的查询字符串中。
recvWindow 在 Binance 文档中是一个可选参数,但我很难理解所写的内容并不总是正确的...... recVWindow 使它起作用。
我希望这有助于解决问题。
【讨论】:
以上是关于Binance api 密钥和秘密查询字符串格式错误的主要内容,如果未能解决你的问题,请参考以下文章
JAVA实战-01-binance量化机器人API接入(更新中)
JAVA实战-01-binance量化机器人API接入(更新中)