revokeEventObserver.Rd
If the parameter revoke
is set to TRUE for renderLogin
then this observer is also required in the Shiny server to do the revoking.
revokeEventObserver(access_token, input)
access_token | A token generated by |
---|---|
input | the input object from a shinyServer function. |
Other shiny auth functions: authReturnCode
,
createCode
,
gar_shiny_getAuthUrl
,
gar_shiny_getToken
,
gar_shiny_getUrl
,
loginOutput
,
reactiveAccessToken
,
renderLogin
, with_shiny
# NOT RUN { ## in global.R ## create the API call function, example with goo.gl URL shortner library(googleAuthR) options("googleAuthR.scopes.selected" = c("https://www.googleapis.com/auth/urlshortener")) shorten_url <- function(url){ body = list( longUrl = url ) f <- gar_api_generator("https://www.googleapis.com/urlshortener/v1/url", "POST", data_parse_function = function(x) x$id) f(the_body = body) } ## in server.R library(shiny) library(googleAuthR) source('global.R') shinyServer(function(input, output, session)){ ## Get auth code from return URL access_token <- reactiveAccessToken(session) ## Make a loginButton to display using loginOutput ## revoke=TRUE means upon logout a user will need to reauthenticate output$loginButton <- renderLogin(session, access_token(), revoke=TRUE) ## Needed if revoke=TRUE above revokeEventObserver(access_token()) short_url_output <- eventReactive(input$submit, { ## wrap existing function with_shiny ## pass the reactive token in shiny_access_token ## pass other named arguments short_url <- with_shiny(f = shorten_url, shiny_access_token = access_token(), url=input$url) }) output$short_url <- renderText({ short_url_output() }) } ## in ui.R library(shiny) library(googleAuthR) shinyUI( fluidPage( loginOutput("loginButton"), textInput("url", "Enter URL"), actionButton("submit", "Shorten URL"), textOutput("short_url") )) # }