shinyapps.io:从API数据(read_lines())

问题描述 投票:0回答:1

我是新来的光泽。我的第一个项目是兴建一个显示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)

当我只是想用显示网址

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

它工作正常。但是,当我想要得到的外部数据不显示任何东西(甚至不是一个错误)。

难道我做错了什么?或者是无法读取shinyapps.io外部数据?

谢谢你的帮助。

r shiny shiny-reactivity
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.