特定应用的Shiny-Server的服务器代码未显示任何数据框

时间:2019-06-22 20:57:01

标签: shiny-server

enter image description here因此ui.R文件运行正常。但是,我怀疑server.R可能是造成此问题的原因。预期的行为是,我在每个页面的嵌入式HTML图表上方都显示了数据框。但是,不会生成数据帧。预期的目标是使用Google表格包,读取google表格,然后将其变形为R Shiny上公开的数据框。

我尝试将数据框架功能和定义放在ui.R和server.R的上方和下方。但是,我在任何输出上都没有得到任何回报。

这是针对Ubuntu 16.04 Server上托管的Shiny-Server。

#
# This is the server logic of a Shiny web application. You can run the
# application by clicking 'Run App' above.
#
# Find out more about building applications with Shiny here:
#
#    http://shiny.rstudio.com/
#

library(shiny)
library(shinydashboard)
library(googlesheets)
library(googleCharts)
library(googleAuthR)
library(stats)
library(searchConsoleR)
library(googleAnalyticsR)
library(httr)
library(dplyr)
library(plyr)
library(mosaic)
library(DT)
library(httpuv)
library(htmltools)

# Google Sheets for Synced Keys with Data Master
# ===============================================
handover <- gs_key("1Wu8gJ#$%%#$%%#@#$@@$#%@@#$%@#%-VVHcB8c")
for_gs_sheet <- gs_read(handover)
str(for_gs_sheet)

# Define server logic required to draw a histogram
shinyServer(function(input, output) {
  google_app <- oauth_app(
    "google",
    key = "3901########################m",
    secret = "b#########################z"
  )
  #oauth2.0_token(google_app)
    ## ---------- Google Authentication ---------- ##
    gs_auth(token = NULL ,new_user = FALSE,
            key = getOption("################.com"),
            secret = getOption("##############Ka5mz"),
            cache = getOption("googlesheets.httr_oauth_cache"), verbose = TRUE)

        for_gs_sheet <- gs_read(handover)
        str(for_gs_sheet)

    output$mytable = DT::renderDataTable({
        df <- gs_read(handover)
    })
})

enter image description here 实际结果应显示与DT程序包相关的输出。但是,在服务器输出中调用该数据表时,该表未被处理和/或不可见。

1 个答案:

答案 0 :(得分:2)

这源于服务令牌问题。 最好的方法是只创建服务令牌和会话,以维护打开的连接并刷新令牌。

我通过以下方式解决了此问题:通过JSON将令牌直接备份到应用程序中,并使应用程序在闪亮的应用程序存储在/ srv /目录下的目录内调用JSON文件。您可以下载服务帐户信息的副本并将其存储在应用程序的工作目录中:

root@miradashboard1:/srv/shiny-server/Apps/CSM# ls
miradashboard-f89f243d0221.json  server.R  ui.R

然后确保您在server.R和ui.R中调用服务令牌。

service_token <- gar_auth_service(json_file="/srv/shiny-server/Apps/CSM/miradashboard-f89f243d0221.json")