2016-09-27 32 views
0

我嘗試使用API​​-R從Google Analytics中提取數據。還有我的兩個文件在這裏經營我閃亮的應用程序:Shiny + 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) 
    }) 
}) 

如果我把一個反應表達在輸出$表,我有同樣的問題(輸出表不出現,並且R不打印我任何錯誤消息)。 我加載的庫:devtools,RGA,閃亮。

回答

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(...) }) 

您可以訪問谷歌分析對象爲:值$ ga.data

+0

我試試這個,而且我發現這個消息的錯誤:'訪問令牌將被保存在'標記'文件中。 警告:錯誤:is.atomic(x)不是TRUE 堆棧跟蹤(最內第一): 70:stopifnot 69:FUN 68:vapply 67:緊湊 66:fix_query 65:build_query 64: get_ga 63:observeEventHandler [C:\ Users ......] 1:runApp 錯誤:[on_request_read]連接重置由peer'如何解決此問題? is.atomic()?我不明白爲什麼。謝謝Mohit Sainani –

+0

嘗試將你的ga_token對象放在shinyServer函數裏面 – rangeelo

+0

你的問題在renderDataTable中。你應該在反應語句中移動'if'子句,根據你的邏輯返回ga.data或NULL,並且只渲染'getDataFromGA()' – rangeelo

相關問題