尝试批量运行R脚本(见下文),我收到错误oauth_listener()需要一个交互式环境然后停止执行。我发现oath_listener()是httr包的一部分。代码在R Studio中运行良好,只是作为Rscript.exe运行?
require(RODBC)
require(RSQLite)
require(RGoogleAnalytics)
require(httpuv)
require(httr)
client.secret <- "xxx"
client.id <- "xxx.apps.googleusercontent.com"
token <- Auth(client.id,client.secret)
save(token,file="./token_file")
ValidateToken(token)
答案 0 :(得分:2)
也许以交互方式运行它以保存令牌文件,然后在要以批处理模式运行时加载令牌文件。您可以使用...
测试它的存在if(file.exists("./token_file")){
load("./token_file")
}else{
token <- Auth(client.id,client.secret)
}
答案 1 :(得分:0)
在R Studio或R中运行R脚本时,它有一个已定义的工作目录,您可以通过以下命令进行检查:getwd()
。
当您在批处理文件中运行脚本时,它可以具有不同的工作目录,因此找不到您需要的令牌文件
因此,您可以先在R Studio中检查运行命令getwd()
的目录,然后在脚本中插入命令setwd("same working directory from R Studio")
,将目录设置为您在RStudio中使用的目录。