Как мы можем извлечь лондонскую погоду в 2000 году с помощью Darksky API? - PullRequest
1 голос
/ 09 января 2020
#install.packages("darksky")
library(darksky)
library(tidyverse)

# current verison
packageVersion("darksky")

Sys.setenv("DARKSKY_API_KEY" = # Secret API Key
             )
Sys.getenv("DARKSKY_API_KEY")

#This coordinates works 
now <- get_current_forecast(43.2672, -70.8617)
print(now)

Попытка извлечь информацию о температуре для Лондона ...

seq(as.Date("2000-01-01"), as.Date("2001-01-01"), "day") %>% 
  map(~get_forecast_for(51.5074, 0.1278, .x)) %>% 
  map_df("daily") %>% 
  ggplot(aes(x=time, y=temperature)) +
  geom_line()´

Но получил доступ запрещен HTTP 403 ошибка

1 Ответ

0 голосов
/ 10 января 2020

Ошибка HTTP 403 гласит, что у вас нет доступа к вызываемому веб-сайту. Так что это означает, что ваш ключ неверен. Прежде всего вам необходимо создать аккаунт на darksky . Обратите внимание: вы просто получаете 1000 звонков API в день бесплатно (отметьте faq ), если вы хотите звонить в течение всего года, вы уже получили 365 звонков API, так как вы делаете один звонок в день. Поэтому попробуйте сначала с меньшими датами.

Вы можете ввести ключ API, используя darksky_api_key(), что дает вам возможность ввести ключ в консоли. В противном случае вы можете создать файл .Renviron и добавить туда ключ (для этого проверьте документальный фильм из пакета darksky).

Итак, после добавления ключа в консоль, здесь работает код пример из github (который, я думаю, вы тоже использовали). Адаптируйте дату и график для вашего случая, я использовал данные за один месяц только из-за лимита вызовов.

library(darksky)
library(tidyverse)
library(ggplot2)

# current verison


darksky_api_key()

#This coordinates works 
now <- get_current_forecast(43.2672, -70.8617)
print(now)

df <- seq(as.Date("2000-01-01"), as.Date("2000-02-02"), "day") %>% 
  map(~get_forecast_for(51.5074, 0.1278, .x)) 

df %>%
  map_df("hourly") %>%
  ggplot(aes(x=time, y=temperature)) +
  geom_line()

Вывод: Output plot

...