2016-07-21 13 views
1

私は毎時私的なGoogleシートをダウンロードするためにrスクリプトを自動的に実行しようとしています。私が対話的にRを使用しているときは、常にうまく動作します。launchdでスクリプトを自動化した後も、最初の1時間は正常に動作します。非対話型オートリフレッシュ古くなったGooglesheetsパッケージのOAuthトークン

launchdで自動化を開始してから1時間の作業が停止します。私は問題は、1時間後にアクセストークンが変更され、非対話型バージョンがOAuthトークンの自動更新を待っていないことだと思います。エラーレポートから得られるエラーは次のとおりです。

自動更新古いOAuthトークン。接続 コールを開くことができません: - > - > cache_token - > saveRDS - gs_auth ...> gzファイル また:gzファイル(ファイルモード)で エラー警告メッセージ: gzファイルで(ファイル、モード): できません「.httr-OAuthの」圧縮されたファイルを開いて、可能性の高い理由 実行は、私はジェニーブライアンのgooglesheetsパッケージを使用してい

を停止 『アクセス許可が拒否されました』。ここで私が最初にシートを登録し、その後のOAuthトークンを保存するために使用するコードは次のとおりです。

gToken <- gs_auth() # Run this the first time to get the oAuth information 
saveRDS(gToken, "/Users/…/gToken.rds") # Save the oAuth information for non-interactive use 

私はその後、私はlaunchdと自動化ファイルに次のスクリプトを使用します。

方法
gs_auth(token = "/Users/…/gToken.rds") 

launchdでスクリプトを自動的に実行するとこのエラーを回避できますか?

答えて

0

私はlaunchdについて知りませんが、私はWindowsタスクプラナーからRスクリプトを自動的に実行したいときに同じ問題がありました。私は、https://github.com/jennybc/googlesheets/issues/262

をトークンファイルを取得するために、一度ブラウザで認証するには:https://i.stack.imgur.com/pprlC.png

あなたがここに解決策を見つけることができます:私のためのトリックは、[1] FALSEに「キャッシュ」属性の値をでした変更します経て、その後

token_file <- gs_auth(new_user = TRUE, cache = FALSE) 
saveRDS(token_file, "googlesheets_token.rds") 

自動ログイン:これをしなかった

gs_auth(token = paste0(path_scripts, "googlesheets_token.rds"), 
verbose = TRUE, cache = FALSE) 
関連する問題