我正在使用该rameritrade
包生成一个 APIrefresh token
和一个access token
. 我有两个单独Rscripts
的生成refresh token
and access token
。refresh token
有效期为 90 天,有效期access token
为 30 分钟。我的目标是Windows Scheduled Task
通过 package设置一个taskscheduleR
。我已经成功地做到了,access token Rscript
每 30 分钟运行一次。这是贯穿cmd
线运行的,用于Rscript.exe
在没有任何图形界面的情况下运行。
该rameritrade
包创建了一个过access token
孔oAuth2
,其中access token
存储在选项中。
"默认情况下,Access Token 存储在选项中,并会自动传递给下游函数"
创建的.log
文件taskscheduleR
显示我创建新文件的功能access token
成功。
我不确定如何在reprex
不透露特定 APIconsumer_key
信息的情况下生成一个,所以这是我的工作流程的代码。
Rscript 执行access token
新一代。
consumer_key <- "key specific to created app"
refresh_token <- readRDS("~/refresh_token.rds")
new_access_token <- function(){
rameritrade::td_auth_accessToken(consumerKey = consumer_key, refreshToken = refresh_token)
}
new_access_token()
options("td_access_token" = access_token)
这是日志打印的内容
[1] "Successful Login. Access Token has been stored and will be valid for 30 minutes"
$access_token
[1] "very long alphanumeric string (personal)"
$scope
[1] "PlaceTrades AccountAccess MoveMoney"
$expires_in
[1] 1800
$token_type
[1] "Bearer"
$expireTime
[1] "2021-05-12 12:29:58 EDT"
$createTime
[1] "2021-05-12 12:00:03 EDT"
我的问题是,不必使用save/readRDS
将 保存access token
到我必须调用才能使用的目标文件中access token
,有什么方法可以让我将此代码保存access token
在全局 R 环境中新生成的,以便在运行函数时就像td_accountData()
我不必编写代码来调用access token
来验证 API 调用?
我希望能够access token
在我的 R 环境中提供自动刷新功能。任何见解都会让我的生活更轻松,我是 R 的新手,所以不知道我拥有的所有选项。使用 .Renviron 解决问题
编辑:
我options("td_access_token" = new_access_token())
在 CRON 作业中添加了一行代码,如果我手动运行此脚本,td_access_token
内部options
将更新为 current access_token
,尽管在自动运行作业时不会发生这种情况。