Shinyapps.io-如何让用户从私人Google表格上传数据

问题描述

我是R Shiny的初学者,对于在Shinyapps.io上的应用程序有疑问。
我想实现让用户从其私有Google表格(未发布到网站)中导入数据的功能
我已经在应用程序Shinyapps.io上发布了我的应用程序,但始终显示“与服务器断开连接”。我想这个问题与Google上私人表格的授权有关。
我在网上做了一些研究,但没有找到解决该问题的好例子。任何专家都可以帮助我解决这个问题。非常感谢您的帮助!
以下是我发布的示例代码。如您所见,我目前使用以下行从Google表格导入数据:

gs4_find("myData_sample") %>% range_read()

下面是完整的代码

library(shiny)
library(shinydashboard)
library(googlesheets4)
library(googledrive)

server = function(session,input,output)
{
  # "input_option" is used to select whether input data from local or online
  input_option = reactive(
    input$select_upload
  )
  
  # Upload the data
  myData = reactive(
    if(input_option() == "local")
    {
      req(input$file_myData)
      read.csv(
        input$file_myData$datapath,header = T,stringsAsFactors = F,sep = input$sep_file_myData)
    }
    else if(input_option() == "online")
    {
      as.data.frame(gs4_find("myData_sample") %>% range_read())
    }
  )
  
  # display the myData data uplaoded ---
  output$display_myData = DT::renderDataTable(
      myData(),options = list(scrollX = T)
  )
}

ui = dashboardPage(
  dashboardHeader(title = "My dashboard"),dashboardSidebar(
    sidebarMenu(
      id = "sidebarmenu",menuItem("Data upload",tabName = "data",icon = icon("database")),conditionalPanel(
        "input.sidebarmenu === 'data'",selectInput(
          inputId = "select_upload",label = "please select an option",choices = c("local","online"),selected = "local"
        )
      )
    )
  ),dashboardBody(
    tabItems(
      tabItem(
        tabName = "data",conditionalPanel(
          condition = "input.select_upload === 'local'",fileInput(inputId = "file_myData",label = "Choose csv file",accept = c("text/csv","text/comma-separated-values","text/plain",".csv")),radioButtons(inputId = "sep_file_myData","Separator",choices = c(Comma = ",",Semicolon = ";",Tab = "\t"),selected = ",")
        ),fluidRow(
          Box(
            title = "myData @R_81_4045@ion uploaded",solidHeader = T,status = "primary",width = 12,DT::dataTableOutput(outputId = "display_myData")
          )
        )
      )
    )
  )
)

shinyApp(ui,server)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)