0

我正在使用该rameritrade包生成一个 APIrefresh token和一个access token. 我有两个单独Rscripts的生成refresh tokenand access tokenrefresh token有效期为 90 天,有效期access token为 30 分钟。我的目标是Windows Scheduled Task通过 package设置一个taskscheduleR。我已经成功地做到了,access token Rscript每 30 分钟运行一次。这是贯穿cmd线运行的,用于Rscript.exe在没有任何图形界面的情况下运行。

rameritrade包创建了一个过access tokenoAuth2,其中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,尽管在自动运行作业时不会发生这种情况。

4

0 回答 0