以便能够持久地存储在Shinyapps上创建的数据。我决定通过rdrop2使用Dropbox。但是,我有一个问题:rdrop2每次都希望通过浏览器从Dropbox进行手动认证。
我的计划是通过dropkey.rds拦截它。
所以我通过本地PC上的浏览器完成了身份验证,保存了下拉键。rds,为了安全起见,把它放在我的www文件夹和相应脚本所在的目录中,并放在"项目顶部文件夹"中。简单地让函数可以找到下拉键。肯定是RDS
不幸的是,它不起作用。即使在本地,脚本也要求我进行身份验证(至少在我第一次运行它时是这样)。在Shinyapps中,程序只是崩溃,因为这里没有浏览器可以打开。
如何绕过Shinyapps.io中的身份验证?
你可以在文章的末尾找到一些代码摘录。谢谢你! !
问好代码提取:
token <- readRDS("droptoken.rds")
drop_acc(dtoken = token)
drop_upload(Pn, path = "test")
(Pn只是要上传的png文件的路径)
日志Shinyapps.io
等待浏览器验证…2019-10-15 t10:21:44 .490437+00:00 shinyapps[48xxxxx]:按Esc/Ctrl +[qh] [48xxxxx]:https://www.dropbox.com/oauth2/authorize?client_id=mxxxxxx2w&redirect_uri=xxxx[2010-10-15]: shinyapps[48xxxxxx]:请指指点点您的浏览器到以下url:
小更新:
我能够解决这个问题。解决方案如下所述:为了让未来的读者更清楚,对于一个闪亮的应用程序,你应该包括您的令牌作为RDS,然后
使用像drop_auth(rdstoken =)这样的令牌进行身份验证tokenfile.rds")在全局。R或在服务器的顶部。R,则叫其他drop_()函数通常(不使用dtoken参数)可以不调用drop_auth(),从RDS文件中读取令牌到R中,然后通过dtoken将该令牌对象传递给每个drop_()函数我认为第一种选择要好得多(我也是这么做的),但第二个应该还是可行的。
将身份验证置于服务器的顶部。R(和策略ui)。R:D)为我解决了这个问题。请注意,您希望在脚本中使用以下rdrop2命令,而不需要再次调用授权或rds文件!:)