我正在尝试使用此示例的更新版本通过闪亮连接到私人 googlesheet,并将此应用程序部署在 shinyapps.io 服务器上。由于应用程序使用指定的预先存在的 googlesheet,因此用户无需对 google 帐户进行身份验证。
我已经按照这个例子(部分复制在这里),试图将令牌保存到我闪亮的应用程序中:
# previous googlesheets package version:
shiny_token <- gs_auth() # authenticate w/ your desired Google identity here
saveRDS(shiny_token, "shiny_app_token.rds")
但尝试将其更新为 googlesheets4,如下所示:
ss <- gs4_get("MY GOOGLE DOC URL") # do the authentication once, manually.
ss
gs4_has_token() # check that the token exists
# get token
ss_token <- gs4_token()
# save the token
save(ss_token, file = "APP PATH ... /data/tk.rdata")
然后在应用程序中,我将此代码放在shinyApp()
函数之外。
load("data/tk.rdata")
googlesheets4::gs4_auth(token = ss_token, use_oob = T)
在应用程序中,我使用从
ss$spreadsheet_id
上面获得的硬编码 id 从应用程序连接到谷歌文档。该应用程序在本地运行。
尝试将应用程序部署到服务器后,我收到错误“...无法获取 google 凭据。您是否在非交互式会话中运行 googlesheets4?...等”我认为令牌将包含足够的信息这个。
如果有人能指出我的设置指南,并评论这种方法(在 shinyapps.io 上保存令牌)是否安全,我将不胜感激?
我看过其他示例,但似乎大多数是针对以前版本的googlesheets