0

パッケージを使用しrameritradeて APIrefresh tokenaccess token. Rscriptsとを生成する2つの別々のものがrefresh tokenありaccess tokenます。はrefresh token90 日間有効で、access tokenは 30 分間有効です。Windows Scheduled Task私の目標は、パッケージ経由でセットアップすることtaskscheduleRです。access token Rscript30分ごとに意図した時間実行することで、成功しました。これはcmdラインを通して実行され、Rscript.exeグラフィカル インターフェイスなしで実行されます。

rameritradeパッケージは、がオプションに格納されるaccess tokenビアoAuth2を作成します。access token

"デフォルトでは、アクセス トークンはオプションに保存され、自動的に下流の関数に渡されます"

で作成された.logファイルはtaskscheduleR、新しい作成機能access tokenが成功したことを示しています。

reprex特定の API 情報を明らかにせずに を生成する方法がわからない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を保存するために使用する必要がなく、グローバル R 環境で新しく生成されたファイルをこのコードで保存する方法があるので、関数を実行するときにAPI呼び出しを認証するために呼び出すコードを書く必要がないように?access tokenaccess tokenaccess tokentd_accountData()access token

access tokenR 環境で自動更新を利用できるようにしたいと考えています。洞察があれば、私の人生はずっと楽になります。私はRの初心者なので、私が持っているすべてのオプションを認識していません。.Renvironで解決に取り組んでいます

編集:options("td_access_token" = new_access_token()) CRON ジョブに コード行を追加しました。このスクリプトを手動で実行すると、現在の に更新されtd_access_tokenますが、ジョブが自動的に実行される場合は発生しません。optionsaccess_token

4

0 に答える 0