【发布时间】:2018-10-03 05:20:15
【问题描述】:
我正在尝试使用他们的 API 将 Coinbase 帐户列表拉入 R。我收到一个身份验证错误,提示“签名无效”。当我创建我的 sha256 签名时,显然有问题,但我无法弄清楚问题是什么。在使用 sha256 签名访问 GDAX API 时,我没有遇到同样的问题。
API 密钥文档
如果您只需要访问自己的帐户,建议使用 API 密钥。所有 API >key 请求都必须经过签名并包含以下标头:
CB-ACCESS-KEY api键作为字符串 CB-ACCESS-SIGN 用户生成的消息签名(见下文) CB-ACCESS-TIMESTAMP 请求的时间戳 所有请求正文都应具有内容类型 application/json 并且是有效的 JSON。
CB-ACCESS-SIGN 标头是通过使用 prehash 字符串时间戳 + 方法 + requestPath + 正文(其中 + 表示字符串连接)上的密钥创建 sha256 HMAC 来生成的。时间戳值与 CB-ACCESS-TIMESTAMP 标头相同。
我的代码
library(httr)
library(RCurl)
library(digest)
coinbase_url <- "https://api.coinbase.com"
coinbase_reqPath <- "/v2/accounts/"
coinbase_fullPath <- paste(coinbase_url, coinbase_reqPath,sep = "")
coinbase_key <- "XXXXMYKEYXXX"
coinbase_secret <- "XXXXXMYSECRETKEYXXXX"
cb_timestamp <- format(as.numeric(Sys.time()), digits=10)
coinbase_message <- paste0(cb_timestamp,"GET", coinbase_reqPath)
coinbase_sig <- hmac(key = coinbase_secret, object = coinbase_message, algo = "sha256", raw = F)
coinbase_acct <- content(GET(coinbase_fullPath,
add_headers(
"CB-ACCESS-KEY" = coinbase_key,
"CB-ACCESS-SIGN" = coinbase_sig,
"CB-ACCESS-TIMESTAMP" = cb_timestamp,
"Content-Type"="application/json")))
【问题讨论】:
-
嗨!你找到解决方案了吗?我有同样的问题..
-
很抱歉看到这个,我发布了答案。
标签: r rest httr coinbase-api