我尝试允许用户在闪亮的应用程序内(使用Shinyproxy)连接到Google Analytics(分析)帐户:
library(shiny)
library("googleAnalyticsR")
options(googleAuthR.verbose=2)
ui <- fluidPage(
actionButton(inputId = "go",label = "go"),
verbatimTextOutput("log")
)
server <- function(input, output, session) {
info <- reactiveValues()
observeEvent(input$go,{
message("clic")
ga_auth(new_user = TRUE)
info$account_list <- ga_account_list()
})
output$log <- renderPrint({
print(info$account_list)
})
}
shinyApp(ui, server)
此应用程序在交互上下文中可以很好地工作,但是在与Shinyproxy一起部署时却无法解决此错误:
2018-08-31 21:01:34> No local token found in session
2018-08-31 21:01:34> Auto-refresh of token not possible, manual re-authentication required
Warning: Error in : Authentication options didn’t match existing session token and not interactive session
so unable to manually reauthenticate
78: stop
77: make_new_token
76: gar_auth
75: gar_auto_auth
74: ga_auth
73: observeEventHandler [/usr/local/lib/R/site-library/gauth/app/app.R#27]
2: shiny::runApp
1: gauth::run_app
我如何允许用户登录其Google Analytics(分析)帐户?
我的工作在这里:https://github.com/VincentGuyader/gauth
(Dockerfile,application.yml和源代码)
致谢
答案 0 :(得分:0)
错误表明ga_auth()
找不到现有的身份验证缓存文件,并且您处于非交互式会话中,因此无法创建新的会话。
您是否仅连接到自己的Google Analytics(分析)帐户?
在这种情况下,最简单的方法是使用您的应用上传在本地使用ga_auth()
(称为.httr-oauth
或ga.oauth
)然后在运行{{ 1}}在您的Shiny应用程序中,它将重用您的令牌。
您可以在函数中专门指出令牌文件,例如ga_auth()
。
如果您想要一个多用户帐户,用户可以使用该帐户登录自己的帐户,则需要使用特定的Shiny函数作为documented on the website。