我正在运行一个R脚本,每隔一小时读一次谷歌表。我正在使用googlesheets包和gs_auth()函数。最初我使用交互式身份验证来运行运行gs_auth()的令牌。从下一次开始,代码只读取保存的令牌并运行gs_auth(token = ...)函数进行身份验证。这是示例代码。
## One time execution to save token ##
token <- gs_auth(cache = TRUE)
saveRDS(token, file = "/myfilepath/googlesheets_token.rds")
## reading the saved token everytime the R script runs ##
gs_auth(token = "/myfilepath/googlesheets_token.rds")
这可以正常工作几个小时然后给我这个错误。
Auto-refreshing stale OAuth token.
Error in function_list[[k]](value) : Unauthorized (HTTP 401).
In addition: Warning message:
Unable to refresh token
每次发生这种情况时,我都会运行两行一次代码并存储一个新令牌,这会再次运行几个小时,然后给我同样的错误。
我还使用cache = FALSE
代替TRUE
,但我并不清楚使用哪一个及其目的。但那并没有成功。
此外,我尝试在每次从本地目录中读取令牌之前刷新令牌,然后再使用gs_auth()
。
t <- readRDS(file = "/myfilepath/googlesheets_token.rds")
t$refresh()
gs_auth(token = t)
有没有办法可以解决这个问题,并且每次都没有交互式版本时进行身份验证。