googleの認証方法について
お世話になっております。
現在、Linuxで動かすgoogleドライブからの情報取得アプリを作成しているのですが
googleの認証方法で困っているため御力添えお願いしたく思います。
現在はWindows環境で開発しており、
以下のようにしてgoogle認証をしているのですが
下記の方法だとはじめに一度ブラウザより認証を許可をする必要があり
Linuxの環境で使用するにはそぐわないと考えております。
setUserCreadntialsを使用することも検討したのですが
OAuthのような一度のみの認証で済むような認証方法で実現したいため
googleのCredentialを取得する際に画面入力を介さないような方法が有りましたら
ご教授のほどよろしくお願いします。
参考までに現在は下記のようにCreadntialを取得しております。
Credential credential = null;
credential = authorize();
//主処理
if(credential == null)
{
throw new Exception("認証失敗。");
}
SpreadsheetService service = new SpreadsheetService(APP_NAME);
service.setOAuth2Credentials(credential);
//認証取得メソッド
/**
* googleの認証情報を返す。
* @return
* @throws Exception
*/
private static Credential authorize() throws Exception
{
try
{
FileDataStoreFactory fdsf = new FileDataStoreFactory(new File(JSON_PATH));
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
new NetHttpTransport(), new JacksonFactory(),
CLIENT_ID, CLIENT_SECRET,
Collections.singleton(SCOPE)).setCredentialDataStore(
StoredCredential
.getDefaultDataStore(fdsf))
.setAccessType("ofline").setApprovalPrompt("auto").build();
return flow.loadCredential(ACCOUNT);
}
catch(Exception e)
{
e.printStackTrace();
return null;
}
}
何卒、ご力添えお願い致します。