【发布时间】:2017-02-07 20:23:41
【问题描述】:
我正在尝试向 API 发出我的第一个 POST 请求。出于某种原因,我总是得到状态 403 作为回报。我怀疑这是错误生成的签名。 api-key 和客户端 ID 肯定是正确的。
我的代码
nonce <-as.integer(Sys.time())
post_message <- paste0(nonce, data_client.id, data_key) # data_client.id = client id # data_key = key
sha.message <- toupper(digest::hmac(data_secret, object = post_message, algo = 'sha256', serialize = TRUE))
url <- 'https://www.bitstamp.net/api/v2/balance/'
body = list('API-KEY' = data_key, 'nonce' = nonce, 'signature' = sha.message)
httr::POST(url, body = body, verbose())
输出
<- HTTP/1.1 403 Authentication Failed
我正在尝试访问 Bitstamp API:https://www.bitstamp.net/api/?package=Rbitcoin&version=0.9.2
所有私有 API 调用都需要身份验证。对于一个成功的 您需要提供您的 API 密钥、签名和 随机数参数。
API 密钥
要获取 API 密钥,请依次转到“帐户”、“安全”和“API 访问”。 设置权限并点击“生成密钥”。
无名
once 是一个常规整数。它必须随着每 要求您提出。在此处阅读更多相关信息。示例:如果您设置随机数 在您的第一个请求中设置为 1,您必须在您的第一个请求中将其设置为至少 2 第二个请求。您不需要从 1 开始。一个常见的 实践是对该参数使用unix时间。
签名
签名是 HMAC-SHA256 编码的消息,包含随机数、客户 ID(可在此处找到)和 API 密钥。 HMAC-SHA256 代码必须是 使用您的 API 密钥生成的密钥生成。 此代码必须转换为它的十六进制表示(64 大写字符)。
【问题讨论】: