Сохраненные учетные данные из Google API для повторного использования Java
Я успешно авторизовал свое настольное приложение. Он хранит файл с именемStoredCredential
, Чтобы при каждом запуске приложения не приходилось выполнять шаги копирования URL-адреса в браузер, принимать и т. Д., Я хочу использовать уже сохраненные учетные данные.
Мой код до сих пор:
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport,
JSON_FACTORY,
CLIENT_ID,
CLIENT_SECRET,
SCOPE)
.setDataStoreFactory(dataStoreFactory)
.setApprovalPrompt("auto").setAccessType("offline").build();
//
System.out.println("flow success");
String url = flow
.newAuthorizationUrl()
.setRedirectUri(REDIRECT_URI)
.build();
System.out.println("Please open the following URL in your browser then "
+ "type the authorization code:");
System.out.println(" " + url);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String code = br.readLine();
GoogleTokenResponse tokenResponse
= flow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute();
GoogleCredential credential = new GoogleCredential
.Builder()
.setTransport(new NetHttpTransport())
.setJsonFactory(new JacksonFactory())
.setClientSecrets(CLIENT_ID, CLIENT_SECRET)
.addRefreshListener(new CredentialRefreshListener() {
@Override
public void onTokenResponse(
Credential credential,
TokenResponse tokenResponse) throws IOException {
System.out.println("Token Refreshed Succesfully");
}
@Override
public void onTokenErrorResponse(
Credential credential,
TokenErrorResponse tokenErrorResponse) throws IOException {
System.out.println("ERROR WITH TOKEN WTF?");
}})
.build();
Как прочитать сохраненные учетные данные и пропустить приглашение командной строки?
Я думал что-то вроде:
if (stored cred exists) {
try {
// use
} catch {
// prompt the user
}
}