【问题标题】:Access Coinbase API using HTTR and R使用 HTTR 和 R 访问 Coinbase API
【发布时间】: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


【解决方案1】:

很抱歉没有早点更新。答案很简单,我只需要在指定我的请求路径时删除“/v2/accounts/”中的最后一个正斜杠。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-05
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多