Shiny + Google Analytics:我的输出表没有出现

时间:2016-09-27 12:02:07

标签: r windows google-analytics shiny

我尝试使用API​​-R从Google Analytics中提取数据。我的两个文件在这里运行我的闪亮应用程序:

ui.R

 shinyUI(pageWithSidebar(

      headerPanel("My Shiny APP"),

      sidebarPanel( 
        dateRangeInput("dateRange",
                       label = "Select date range:",
                       start = Sys.Date() - 7, end = Sys.Date()-6)),

      mainPanel(

        fluidPage(
          fluidRow(
            column(12,
                   dataTableOutput("table")
            )
          )
        ))))

server.R

ga_token <- authorize(client.id = "XXXXXXXXX.apps.googleusercontent.com", 
                      client.secret = "XXXXXXXXXXX",
                      cache = "token")

shinyServer(function(input, output){


  getDataFromGA <- reactive({

    ga.data <- get_ga(profileId = "ga:xxxxxxx", 
                              start.date =input$dateRange[1], end.date = input$dateRange[2], 
                              metrics = c("ga:sessions","ga:bounceRate"), dimensions = "ga:userType", 
                              samplingLevel = "HIGHER_PRECISION", start.index = NULL,
                              max.results = 10000, include.empty.rows = NULL, fetch.by = NULL, ga_token)

    return(ga.data)


  })

  output$table = renderDataTable({
    ga.data <- getDataFromGA()
    if (is.null(ga.data)) return(NULL)
    })
}) 

如果我在输出$ table中放入一个反应式表达式,我遇到同样的问题(输出表没有出现,并且R不会打印出任何错误消息)。 我加载的库:devtools,RGA,有光泽。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用reactiveValues和observeEvent,而不是简单地使用被动反应。 您的代码可能类似于:

    values <- reactiveValues(start.date = NULL, end.date = NULL, ga.data = NULL)

    observeEvent(input$dateRange, {
    values$start.date <- input$dateRange[1]
    values$end.date <- input$dateRange[2]
    values$ga.data <- get_ga(...) })

您可以访问google analytics对象:values $ ga.data