问题描述
我是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 (将#修改为@)