我尝试使用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,有光泽。
答案 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