2017-12-19 13 views
0

Windowsタスクマネージャを使用してタスクをプログラムしました。これは、bigrqueryライブラリ経由でBigQueryデータにアクセスすることから成ります。自分の資格情報をローカルファイルhttr-oauthに保存しました。.httr-oauthファイルのためWindowsタスクが失敗する

私はこれらのライブラリを使用しています:

library(bigrquery) 
library(assertthat) 
library(httpuv) 

タスクは数週間のために働いていると、突然、私は、ログファイル(.Rout)にこのメッセージが表示されます。

Waiting for authentication in browser... 
Press Esc/Ctrl + C to abort 
Please point your browser to the following url: 
https://accounts.google.com/o/oauth2/auth?client_id=.... 

それは、トークンをリフレッシュする必要があるように見えますが、スクリプトを手動で実行するとすべてが正常で、httr-oauthはうまく動作します。

何が起こっているか考えてみませんか?前もって感謝します!

+0

OAuthトークンが期限切れになっているようです。手動で実行した場合は、更新を求められましたか?そうであれば、スケジュールされたタスクに使用しているトークンを上書きしていますか(別の場所から行った場合はそうではないかもしれません)。そうでない場合は、手動で新しいトークンに置き換えようとしましたか? –

+0

ファイル名は 'httr-oauth'ですか?代わりに '.httr-oauth'(ドット付き)が期待されるようです。 –

+0

はい、@Aurèle、それは接頭辞のドットを持っています。私が手動でそれを走らせたとき、それは新しいものによって上書きされました。だから私は何が失敗しているのか分からない。 –

答えて

0

要するに、サービスアカウントを使用する必要があります。

Google サービスアカウントを使用して接続を認証するようにライブラリドライバを設定する方法を確認します。この方法で接続を認証すると、ドライバはサービスアカウントに代わって認証を処理するため、個々のユーザーアカウントは直接関与せず、ユーザー入力は不要です。

このように接続を認証するには、Googleサービスアカウントのメールアドレスとサービスアカウントの秘密キーファイルの完全パスを指定する必要があります。秘密鍵ファイルは、サービスアカウントの設定時に生成してダウンロードできます。

ここをクリックしてください:https://developers.google.com/identity/protocols/OAuth2ServiceAccount

+0

ありがとうございました。 –

関連する問題