Skip to content

Instantly share code, notes, and snippets.

@MarkEdmondson1234
Created August 19, 2015 07:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save MarkEdmondson1234/acbbb9a6b5a635ccbf73 to your computer and use it in GitHub Desktop.
Save MarkEdmondson1234/acbbb9a6b5a635ccbf73 to your computer and use it in GitHub Desktop.
Demo using Shiny with googleAuthR
## in global.R
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
output$loginButton <- renderLogin(session, 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")
))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment