Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to access browser session/cookies from within Shiny App

Tags:

r

cookies

shiny

How can I access cookies and other browser-related session data from within a Shiny app?

With session$clientData, we are able to get other client details like host,port,query param...

Is there any other way to get cookies in shiny app?

like image 698
sag Avatar asked Sep 02 '15 12:09

sag


1 Answers

To build on the great comments, you can use the js.cookie.js package with the Shiny.OnInputChange() function to return cookies.

An example app is here: https://beta.rstudioconnect.com/iwallace/cookies/

--ui.r--

library(shiny)
library(shinydashboard)

fluidPage(
tags$head(tags$script(src="js.cookie.js")),
# a shiny element to display unformatted text
box(title ="click the gray square to view cookies!",    verbatimTextOutput("results"),actionButton("go","click me")),

# javascript code to send data to shiny server
tags$script('
          document.getElementById("go").onclick = function() {
          var number = Math.random();

          Cookies.set(\'name\', \'value\', { expires: 7 });
          Cookies.set(\'cookie_2\', \'value\', { expires: 7 });

          var my_cookie = Cookies.get(); 

          Shiny.onInputChange("mydata", my_cookie);
          };
          ')

)

--server.r--

library(shiny)

shinyServer(function(input, output,session) {
output$results = renderPrint({
input$mydata
})

})
like image 56
Iain Avatar answered Sep 27 '22 22:09

Iain