Search code examples
rshinycoerce

googleAnalyticsR package cannot coerce type 'closure' to vector of type 'character'


When I run the following code I see no error and the Shiny app renders and performs as expected.

library(shiny)
library(googleAuthR)

gar_set_client(scopes = c("htps://www.googleapis.com/auth/analytics.readonly"))

library(googleAnalyticsR)

ui <- fluidPage(
  googleAuth_jsUI("auth")
  )

server <- function(input, output, session) {
}

shinyApp(ui = ui, server = server)

However, when I run a later iteration with the addition of the auth module I get a coercion error

library(shiny)
    library(googleAuthR)

    gar_set_client(scopes = c("htps://www.googleapis.com/auth/analytics.readonly"))

    library(googleAnalyticsR)

    ui <- fluidPage(
      googleAuth_jsUI("auth")
      )

    server <- function(input, output, session) {

    auth <- callModule(gar_auth_js, "auth")


    }

ERROR:

2020-02-16 21:41:43> 
options(googleAuthR.scopes.selected=c('https://www.googleapis.com/auth/analytics.readonly'))
options(googleAuthR.client_id='xxx.apps.googleusercontent.com')
options(googleAuthR.client_secret='xxx')
options(googleAuthR.webapp.client_id='xxx.apps.googleusercontent.com')
options(googleAuthR.webapp.client_secret='xxx')

Listening on http://127.0.0.1:1221
Warning: Error in as.character: cannot coerce type 'closure' to vector of type 'character'
  58: sprintf
  57: gettextf
  56: .Deprecated
  55: module
  50: callModule
  49: server [/Users/xxx/xxx/xxx/app.R#60]
Error in as.character(function (input, output, session, message = "Authenticate with your Google account")  : 
  cannot coerce type 'closure' to vector of type 'character'

Solution

  • Error is due to deprecation of: auth <- callModule(gar_auth_js, "auth")

    Instead the following must be used. auth <- callModule(googleAuth_js, "auth")