gpt4 book ai didi

r - 使用 httr 通过 BitMex API 下单

转载 作者:行者123 更新时间:2023-12-05 07:24:08 25 4
gpt4 key购买 nike

我正在尝试使用 httr R 包通过他们的 API 在 BitMex 上下订单。

我在 here 上找到了一些指导, 并分别在对象 K 和 S 中指定了我的 API key 和 secret 之后,我尝试了以下操作

verb <- 'POST'
expires <- floor(as.numeric(Sys.time() + 10000))
path <- '/api/v1/order'
data <- '{"symbol":"XBTUSD","price":4500,"orderQty":10}'

body <- paste0(verb, path, expires, data)
signature <- hmac(S, body, algo = 'sha256')

body_l <- list(verb = verb, expires = expires, path = path, data = data)

然后两者:

msg <- POST('https://www.bitmex.com/api/v1/order', encode = 'json', body = body_l, add_headers('api-key' = K, 'api-signature' = signature, 'api-expires' = expires))

和:

msg <- POST('https://www.bitmex.com/api/v1/order', body = body, add_headers('api-key' = K, 'api-signature' = signature, 'api-expires' = expires))

检查时给我同样的错误信息:

rawToChar(msg$content)
[1] "{\"error\":{\"message\":\"Signature not valid.\",\"name\":\"HTTPError\"}}"

我已经尝试根据 BitMex explains to use their API 的方式进行设置,但我似乎遗漏了一些东西。他们列出了几个可能导致我的无效签名问题的问题,但他们似乎并没有帮助我。按照他们的示例,我得到了完全相同的哈希值,所以这似乎是有序的。

最佳答案

来晚了,但希望这对您有所帮助!

您的 POST 调用只需要做一些小改动:

  • 添加content_type_json()

  • add_headers() 中包含 .headers = c('the headers')。请参见下面的示例:

library(httr)
library(digest)

S <- "your api secret"
K <- "your api key"

verb <- 'POST'
expires <- floor(as.numeric(Sys.time() + 10))
path <- '/api/v1/order'
data <- '{"symbol":"XBTUSD","price":4500,"orderQty":10}'

body <- paste0(verb, path, expires, data)
signature <- hmac(S, body, algo = 'sha256')

msg <- POST('https://www.bitmex.com/api/v1/order',
encode = 'json',
body = data,
content_type_json(),
add_headers(.headers = c('api-key' = K,
'api-signature' = signature,
'api-expires' = expires)))

content(msg, "text")

我在 CRAN 上有一个包裹 - bitmexr - 它提供了您可能感兴趣的大多数 BitMEX API 端点的包装器。仍然是一个相当“年轻”的包,所以我欢迎任何反馈!

关于r - 使用 httr 通过 BitMex API 下单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55616186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com