如何解决如何在全球环境中存储 TD Ameritrade API 访问令牌 - R
我正在使用 rameriTrade
包生成 API refresh token
和 access token
。我有两个单独的 Rscripts
生成 refresh token
和 access token
。 refresh token
的有效期为 90 天,access token
的有效期为 30 分钟。我的目标是通过包 Windows Scheduled Task
设置一个 taskscheduleR
。我已经成功做到了,access token Rscript
每 30 分钟按我的预期持续时间运行。这是通过 cmd
行运行并使用 Rscript.exe
在没有任何图形界面的情况下运行。
rameriTrade
包通过 access token
创建一个 oAuth2
,其中 access token
存储在选项中。
"默认情况下,访问令牌存储在选项中 并且会自动传递给下游函数"
使用 .log
创建的 taskscheduleR
文件表明我创建新 access token
的函数成功。
我不确定如何在不透露特定 API reprex
信息的情况下生成 consumer_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 调用?
我希望能够在我的 R 环境中使用自动刷新 access token
。
任何见解都会让我的生活更轻松,我是 R 的新手,所以不知道我拥有的所有选择。使用 .Renviron 解决问题
编辑:
我在 CRON 作业中添加了一行代码 options("td_access_token" = new_access_token())
,如果我手动运行此脚本,td_access_token
中的 options
将更新为当前的 access_token
,尽管作业自动运行时不会发生这种情况。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。