R Googlesheets包和gs_auth()函数 - 非交互式自动刷新陈旧令牌问题

时间:2016-08-30 13:56:35

标签: r rscript google-sheets-api r-googlesheets

我正在运行一个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)

有没有办法可以解决这个问题,并且每次都没有交互式版本时进行身份验证。

0 个答案:

没有答案