Использование googleAnalyticsR внутри блестящего приложения - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь разрешить пользователю подключаться к учетной записи 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)

это приложение хорошо работает в интерактивном контексте, но не при развертывании с глянцевым прокси. Я получил эту ошибку:

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 и исходный код)

Привет

1 Ответ

0 голосов
/ 03 сентября 2018

Ошибка указывает, что ga_auth() не может найти существующий файл кэша аутентификации, и вы находитесь в неинтерактивном сеансе, поэтому не можете создать новый.

Вы подключаетесь только к своей учетной записи Google Analytics?

В этом случае проще всего загрузить с приложением маркер автономной аутентификации, созданный при локальном использовании ga_auth() (называемый .httr-oauth или ga.oauth), а затем при запуске ga_auth() в приложении Shiny будет повторно использовать ваш токен.

Вы можете указать файл токена специально в функции, например, ga_auth("ga.oauth").

Если вам нужна многопользовательская учетная запись, в которой пользователь входит в свою учетную запись, вам нужно будет использовать определенные функции Shiny, как указано в , задокументированном на веб-сайте .

...