shinyapps.io:数据来自 API (read_lines())

shinyapps.io: data from API (read_lines())

我是 shiny 的新手。我的第一个项目是构建一个显示用户选定日期的 NBA 得分的应用程序。当我 运行 它在本地机器上时它工作得很好但是当我部署到 shinyapps.io.

时它不工作

到目前为止,我调试了它,发现它不起作用。显然该应用程序不会从 NBA API.

读取数据

这是我正在做的代码示例:

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 上的外部数据?

感谢您的帮助。

我也在 RStudio 社区发布了这个问题。 shinyapps.io 托管在 AWS 上,NBA 统计数据似乎阻止了来自 AWS 的请求。看这里:https://community.rstudio.com/t/shinyapps-io-data-from-api-read-lines/22936/2