【问题标题】:how should I access shiny user's session info?我应该如何访问闪亮用户的会话信息?
【发布时间】:2019-10-10 10:07:17
【问题描述】:

我想知道是否有任何方法可以访问我的 Shiny 应用程序的用户日志。

目前,我使用下面的代码来获取谁登录以及此人何时注销。

但是,我希望知道用户登录的时间,以便能够知道用户使用该应用程序的时间。

session$onSessionEnded(function(){
      UserInfo <- data.frame(
                  LoginName = session$user, 
                  Time = as.character(Sys.time())
                             )

另外,我知道 Google Analytics(分析)可以轻松访问此类信息,但我更喜欢“闪亮”的方式来解决它。

我也尝试使用 `session$clientData',因为文档说它用于 "Getting Non-Input Data From the Client",但我不知道如何获得登录时间。

有人知道我该如何实现这一目标吗?提前致谢!

【问题讨论】:

  • 根据shiny scoping rulesserver &lt;- funtion(input, output, session) 中的所有内容都是每次会话。只需在server 函数中添加started &lt;- Sys.time() 作为第一件事,然后您就知道(在shiny 内)该时间何时开始。
  • @r2evans 哇!!我从来没有这样想过。谢谢!!

标签: r shiny


【解决方案1】:

根据shiny scoping rulesserver &lt;- function(input, output, session) 中的所有内容都是按会话进行的。

server <- function(input, output, session) {
  # everything in here is run once per-session, so it should run as soon as
  # a user starts using the app
  started <- Sys.time()
  # ... reactives here ...
  session$onSessionEnded(function() {
    UserInfo <- data.frame(
      LoginName = session$user, 
      Time = as.character(Sys.time())
    )
    # ... do something with UserInfo ...
  })

事实上,作用域规则正是这样建议的,但他们将其命名为startTime(难点:缓存失效和变量命名。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    相关资源
    最近更新 更多