shinyapps.io: данные из API (read_lines())

Я новичок в блестящей. Мой первый проект - создать приложение, которое отображает оценки NBA для выбранной пользователем даты. Он отлично работает, когда я запускаю его на локальной машине, но не работает, когда я развертываю на shinyapps.io.

Я отладил его так далеко, что нашел то, что не работает. Видимо, приложение не читает данные из API NBA.

Вот пример кода того, что я делаю:

library(shiny)
library(tidyverse)
library(lubridate)
library(glue)

ui <- fluidPage(

  # Application title
  titlePanel("Get NBA Scores"),

  # Select date
  sidebarLayout(
    sidebarPanel(
      dateInput(inputId = "date",
                label = "Select Date")
    ),

    mainPanel(
      textOutput("boxscores")
    )
  )
)

server <- function(input, output) {

  date <- reactiveValues()
  url <- reactiveValues()
  nba <- reactiveValues()

  # add leading zero to day
  observe(date$day <- ifelse(nchar(day(as.character(input$date))) == 1, paste0("0", day(as.character(input$date))), day(as.character(input$date))))

  # add leading zero to month
  observe(date$month <- ifelse(nchar(month(as.character(input$date))) == 1, paste0("0", month(as.character(input$date))), month(as.character(input$date))))

  # extract year
  observe(date$year <- year(as.character(input$date)))

  # create url
  observe(url$url1 <- glue("http://stats.nba.com/stats/scoreboard/?GameDate={date$month}/{date$day}/{date$year}&LeagueID=00&DayOffset=0"))

  #import data
  observe(nba$nba <- read_lines(url$url1))

  output$boxscores <- renderText({
    #plot raw data
    nba$nba
  })     
}

# Run the application 
shinyApp(ui = ui, server = server)

Когда я просто хочу отобразить URL с помощью

output$boxscores <- renderText({
  #plot url
  url$url1
})     

это работает отлично. Но когда я хочу получить внешние данные, он ничего не показывает (даже ошибки).

Я делаю что-то неправильно? Или нельзя прочитать внешние данные на shinyapps.io?

Спасибо за вашу помощь.

1 ответ

Решение

Я также разместил этот вопрос в сообществе RStudio. shinyapps.io размещен на AWS, и похоже, что статистика NBA блокирует запросы от AWS. Смотрите здесь: https://community.rstudio.com/t/shinyapps-io-data-from-api-read-lines/22936/2

Другие вопросы по тегам