Добавление «nonce» в запрос API-R - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь создать запрос на R для платформы обмена Exmo, которая требует аутентификации и одноразового номера. (https://exmo.com/en/api#/authenticated_api) Я пробовал несколько кодов, но продолжаю получать ту же ошибку.

Мой код:

query <-    
  list(    
    nonce = as.numeric(as.POSIXct(Sys.time()))    
  )    

signature <-    
    digest::hmac(    
    key = "secretkey",      
    object = paste(names(query), query, sep = "=", collapse = "&"),        
    algo = "sha512"           
  )        

(acc <- POST(        
  url= "https://api.exmo.com/v1/user_info/",        
  add_headers(Key = "publickey"),        
  add_headers(Sign = "secret key"),        
  add_headers(nonce=nonce),        
  query = c(signature = signature),        
  verbose()        
))        

library(jsonlite)        
get_exmo<- content(acc, as="text")      # Convert to "character"        
(get_exmo_json <- fromJSON(get_exmo)) 

Я получаю ошибку:

$ result [1] FALSE

$ error [1] "40007: неверный параметр формата'nonce' "

Есть идеи, как добавить правильный формат nonce?

1 Ответ

0 голосов
/ 09 февраля 2019

Одноразовый номер идет в URL запроса, а не в заголовках, судя по этой части https://github.com/exmo-dev/exmo_api_lib/blob/master/python/exmo3.py#L21:

def api_query(self, api_method, params = {}):
    params['nonce'] = int(round(time.time() * 1000))
    params =  urllib.parse.urlencode(params)

    sign = self.sha512(params)
    headers = {
        "Content-type": "application/x-www-form-urlencoded",
        "Key": self.API_KEY,
        "Sign": sign
    }
    conn = http.client.HTTPSConnection(self.API_URL)
    conn.request("POST", "/" + self.API_VERSION + "/" + api_method, params, headers)
    response = conn.getresponse().read()
...