R httr GET запрос 400 ошибка GDAX

Я пытаюсь ударить GDAX, используя R и получить следующую проблему. Как решить проблему, используя httr,

Response [https://api-public.sandbox.gdax.com/accounts]
  Date: 2017-12-07 20:30
  Status: 400
  Content-Type: application/json; charset=utf-8
  Size: 53 B

Ниже мой код. Обратите внимание, что проблема существует только с httr пакет, а не с RCurl (код предоставлен в приложении)

library(digest)
library(httr)
library(RCurl) # for base64Decode

url <- "https://api-public.sandbox.gdax.com/accounts"
secret <- # API secret from GDAX sandbox
api.key <- # API key from GDAX sandbox
passphrase <- # API passphrase from GDAX sandbox

timestamp <- format(as.numeric(Sys.time()), digits=13) # create nonce
key <- base64Decode(secret, mode="raw") # encode api secret
what <- paste0(timestamp, "GET", req.url)
sign <- base64Encode(hmac(key, what, algo="sha256", raw=TRUE))

connector <- list(url = url, nonce = timestamp, signature = sign))

GET(url=connector$url,
  add_headers(
    'CB-ACCESS-KEY'=api.key,
    'CB-ACCESS-SIGN'=connector$signature,
    'CB-ACCESS-TIMESTAMP'=connector$nonce,
    'CB-ACCESS-PASSPHRASE'=passphrase,
    'Content-Type'='application/json'
  )
)

Если, однако, я использую RCurl тогда я могу получить ответное содержимое, используя следующий код.

httpheader <- list('CB-ACCESS-KEY'=api.key,
  'CB-ACCESS-SIGN'=sign,
  'CB-ACCESS-TIMESTAMP'=timestamp,
  'CB-ACCESS-PASSPHRASE'=passphrase,
  'Content-Type'='application/json')

connector <- list(url = url, header = httpheader)

getURLContent(url = connector$url,
  curl=getCurlHandle(useragent="R"),
  httpheader=connector$header)

2 ответа

Решение

Если песочница не была восстановлена ​​(у меня нет информации, чтобы сказать, что это было), она была выведена из эксплуатации в начале 2017 года с очень небольшим количеством средств связи и, насколько я знаю, до этой даты еще не закончена. Я задокументировал это на gdax-java lib.

Код состояния 400 означает, что вы отправляете неверный запрос. Что-то должно отсутствовать или в неправильном формате. Это может быть отсутствующая строка User Agent.

За каждый ответ об ошибке вы получаете сообщение с точным описанием причины отклонения вашего запроса. Прочитайте содержание вашего ответа.

Другие вопросы по тегам