【问题标题】:Formulating POST request to CoinSpot API制定对 CoinSpot API 的 POST 请求
【发布时间】:2021-05-16 04:15:53
【问题描述】:

我正在努力查询 CoinSpot API。

只读 API 的端点是:https://www.coinspot.com.au/api/ro

文档说明:

对 API 的所有请求都需要包含以下安全性 数据。

Headers: key - 您从设置页面签名生成的 API 密钥 - POST 数据将使用您的密钥进行签名,根据 HMAC-SHA512 方法。 Post Params:nonce - 任何必须的整数值 总是大于先前请求的 nonce 值。

我尝试通过以下方式查询“列出我的余额”端点:https://www.coinspot.com.au/api/ro/my/balances

但是,我在下面制定的代码总是返回错误:“invalid/missing nonce”。

我尝试了很多不同的变体和方法,但总是同样的错误。

require(httr)

key <- "68z...39k"
secret <- "71A...48i"

result <- POST("https://www.coinspot.com.au/api/ro/my/balances",
               body = list('nonce'=as.integer(as.POSIXct(Sys.time()))), add_headers("key"=key,"sign"=openssl::sha512("https://www.coinspot.com.au/api/ro/my/balances",key = secret)))

content(result)

非常感谢任何帮助。

【问题讨论】:

  • 您找到解决方法了吗?我也有同样的问题...
  • openssl::sha512 是否返回字符串?看起来它需要是一串十六进制值。
  • @ayushlal - 遗憾的是我从来没有找到解决这个问题的方法。我最终改用了 Binance,因为 REST API 有很好的文档记录并且更易于使用。有一个 R 包可以与之交互,尽管它有一些错误,因为它不再维护。私信我,我可以帮忙。
  • 我也遇到了同样的问题。使用邮递员访问但得到以下错误:{"status":"error","message":"invalid/missing nonce"}
  • 他们有任何技术支持可以帮助解决这个谜团吗?

标签: r api httr


【解决方案1】:

对我来说,我在正文中缺少 JSON 字符串编码的 postdata,包括 nonce。我一添加它,它就开始工作了。

【讨论】:

  • 您有任何代码示例可以分享吗?
【解决方案2】:

我也为此苦苦挣扎——coinspot API 指南不是很清楚。

我发现您打算使用 sha512 以正确的 json 格式对 postdata 进行编码,并将其添加到签名标头中。请参阅下面的示例,在第 2 版 api 上查询账户余额。

require(httr)

api_key = "68z...39k"
api_secret = "71A...48i"
base_url = "https://www.coinspot.com.au/api/v2/ro"
request = "/my/balances"
nonce =  as.character(as.integer(Sys.time()))
postdata = paste0('{"nonce":"',nonce,'"}') # important to get the quotes correct
api_sign = digest::hmac(api_secret, postdata, algo="sha512",raw=F)

result = POST(paste0(base_url, request),
              body = list("nonce"=nonce), 
              add_headers(c("key"=api_key,
                            "sign"=api_sign)),
              encode="json"
)
cat(rawToChar(result$content))

您可以根据您使用 API 所做的更改 postdata 中的内容 - 这是一个简单的构建示例。如果您想查看postdata 在签名加密之前的样子,请在发出请求后使用cat(rawToChar(result$request$options$postfields))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多