我是新来的光泽。我的第一个项目是兴建一个显示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外部数据?
谢谢你的帮助。
我也贴在RStudio社区这个问题。 shinyapps.io托管于AWS,似乎NBA统计阻止了来自AWS请求。在这里看到:https://community.rstudio.com/t/shinyapps-io-data-from-api-read-lines/22936/2