我正在尝试使用 REST API 从 Kraken 检索 30 分钟蜡烛的 3 个月历史记录:https : //www.kraken.com/help/api
按照文档,我向 URL 发出了这个 POST 请求:https : //api.kraken.com/0/public/OHLC
以 JSON 格式传递以下参数:
{
"pair":"EOSETH",
"interval":30,
"since":1514404800
}
Run Code Online (Sandbox Code Playgroud)
其中 1514404800 对应于日期的时间戳(以秒为单位):
27/10/2017 20H00m UTC
这从 API 文档中不清楚,他们称之为“ID”,但我通过查看返回值得出了这个结论.
所以我期待从这个日期开始返回条目的响应。然后我将使用返回的最后一个 id 获取后续条目。
然而,我得到的第一个条目正好对应于 15 天前。实际上,如果我根本不传递参数“since”,我会得到完全相同的结果,因此似乎该参数被完全忽略了。
也许 Kraken 更改了 API 并且此参数“因为”被其他参数替换了?
或者我误解了这个参数的语法,我做错了什么?
我尝试制作一个简单的函数,它向 Kraken 交换 API 发出 HTTP 请求。该方法是私有的,我正在尝试获取我的帐户余额。
根据 Kraken 文档(https://www.kraken.com/features/api#general-usage):
HTTP 标头:
API-Key = API 密钥
API-Sign = 使用 HMAC-SHA512 of (URI path + SHA256(nonce + POST data)) 和 base64 解码的秘密 API 密钥的消息签名
发布数据:
nonce = 总是递增的无符号 64 位整数
otp = 双因素密码(如果启用双因素,否则不需要)
我试图使我的签名生成类似于“veox”Python 库(可在:https : //github.com/veox/python3-krakenex/blob/master/krakenex/api.py 获得)。
我在 Ubuntu 18.04 上使用 Python 3.6.7。
我在 Kraken 交易所的帐户已启用 2FA (otp),但我不确定是否需要包含在请求中。
我在堆栈溢出中搜索了解决方案,但似乎无法从可用帖子中获得任何信息。(请记住,我对 Python 和 Stack Overflow 还很陌生)
我从服务器得到 200 响应,所以我很确定问题出在生成签名上。
这是我的代码(xxx、yyy 和 zzz 变量是故意这样写的):
Kraken_secret_key = 'xxx'
Kraken_headers ={ …Run Code Online (Sandbox Code Playgroud)