>

R 를 사용하여GDAX를 누르려고합니다.  다음 문제가 발생합니다. 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)

  • 답변 # 1

    샌드 박스가 복원되지 않으면 (내가 말한 정보가 없음) 2017 년 초에 통신 방식이 거의 없어서 해체되었으며 여전히 알고있는 한이 날짜까지 사용되지 않았습니다. 나는 이것을 gdax-java lib에 문서화했다.

  • 답변 # 2

    상태 코드 400은 잘못된 요청을 보낸다는 것을 의미한다. 누락되었거나 잘못된 형식이어야합니다. 누락 된 User Agent 문자열 일 수 있습니다.

    모든 오류 응답에 대해 요청이 거부 된 이유를 정확하게 설명하는 메시지가 표시됩니다. 답변 내용을 읽으십시오.

관련 자료

  • 이전 python 3.x - python3에서 float 및 string을 정수 값으로 변환하는 방법
  • 다음 python - 모듈에서 전역 변수를 선언하는 방법