LoginSignup
2
3

More than 5 years have passed since last update.

[Java]GoogleAPIをバッチ処理で使う

Posted at

Linuxサーバ上のファイルをGoogleDriveにバックアップしたく、以下のサンプルコードを元に実装してみた。
https://github.com/google/google-api-java-client-samples/tree/master/drive-cmdline-sample

しかし、GoogleAPIの認証時にブラウザが必要になるため、サーバ上では実行できない。
色々調べてみると、一度リフレッシュトークンを取得すればそれを使ってアクセストークンを生成できる、とのことだが、サンプルコードで使われているクラスにリフレッシュトークンをセットするようなメソッドが見つからなかった。

代わりに、一度GUI環境で認証情報を作成し、それをサーバに転送して使われるようにすれば問題なく動作することがわかった。
上記のサンプルコードだと、認証情報を保存するパスは以下のフィールドで定義されている。

/** Directory to store user credentials. */
private static final java.io.File DATA_STORE_DIR =
new java.io.File(System.getProperty("user.home"), ".store/drive_sample");

一度認証すると、上記ディレクトリ内にStoredCredentialというファイルが生成される。
これをGoogleDriveAPIを実行したいマシンに持って行き、/home/hoge/.store/drive_sample/StoredCredential においてやればGoogleAPIを実行できる。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3