Добавление API очистки пользовательского агента с помощью jsonlite / FromJSON

#r #api #user-agent #jsonlite

#r #API #user-agent #jsonlite

Вопрос:

Я начал получать 429 ошибок для приведенного ниже сценария. API, который я очищаю, требует указания пользовательского агента.

Я в недоумении, как указать заголовок пользовательского агента в используемом мной пакете. Попытки, которые я предпринимал с использованием RCurl::getUrl , также приводили к ошибкам.

Использование options(HTTPUserAgent = "what google returns when I search my user agent") не устранило проблему 429.

Документация по API приведена ниже.

https://docs .helium.com/api/blockchain/introduction/#specify-a-user-agent

 library(jsonlite)

blocks_api <- 'https://api.helium.io/v1/blocks'
blocks <- fromJSON(blocks_api)

endTime <- Sys.Date()
blockMax_api <- paste0(blocks_api,"/height","/?max_time=",endTime)
blockMax_ep <- fromJSON(blockMax_api)
blockMax <- max(blockMax_ep$data$height)

startTime <- Sys.Date() - 1
blockMin_api <- paste0(blocks_api,"/height","/?max_time=",startTime)
blockMin_ep <- fromJSON(blockMin_api)
blockMin <- blockMin_ep$data$height
period_blocks <- blockMax - blockMin

blockTimes <- data.frame()
oraclePrice <- 'https://api.helium.io/v1/oracle/prices'

for(i in blockMin:blockMax){
  block_n <- fromJSON(paste0(blocks_api,"/",i))
  block_n <- as.data.frame(block_n)
  block_n$data.time <- anytime(block_n$data.time)
  block_n <- block_n[,c(2,5,6)]
  oracleBlockPrice <- fromJSON(paste0(oraclePrice,"/",i))
  block_n$HNTprice <- oracleBlockPrice$data$price / 100000000
  blockTimes  <- rbind(blockTimes,block_n)
  Sys.sleep(1)
}