我注意到的第一件事是你的 recvWindow 真的很大。截至 2019 年 9 月 15 日,recvWindow 的最大值现在为 60000,否则将引发错误 -1131 BAD_RECV_WINDOW。Binance 现在推荐 5000 或更低的 recvWindow。当您提出问题时,您的 recvWindow 的大小可能会导致错误。
无论如何,我发现这段代码对我有用。它将帐户信息作为列表返回,将帐户余额作为数据框返回。
##### Libraries #####
library(httr)
library(jsonlite)
library(digest)
##### URLS #####
timestamp_url <- "https://api.binance.com/api/v1/time"
account_url <-"https://api.binance.com/api/v3/account"
##### Keys #####
public_key <- "paste_your_public_key_here"
secret_key <- "paste_your_secret_key_here"
##### Parameters #####
recvWindow <- 5000
##### Timestamp function #####
getTimestamp <- function(){
return(as.character(fromJSON(content(x = GET(timestamp_url),
type = "text",
encoding = "ISO-8859-1"),
flatten = TRUE)$serverTime + 999))
}
##### Request #####
query <- list(recvWindow = recvWindow,
timestamp = getTimestamp())
signature <- hmac(key = secret_key,
object = paste(names(query), query, sep = "=", collapse = "&"),
algo = "sha256")
get <- GET(account_url,
add_headers("X-MBX-APIKEY" = public_key),
query = c(query, signature = signature),
verbose())
content <- content(x = get,
type = "text",
encoding = "ISO-8859-1")
AccountInfo <- fromJSON(content,
flatten = T)
AccountBalance <- AccountInfo$balances