Итак, вот код, который я использую для подключения к Google Drive API и аутентификации моих пользователей, проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я вызываю функцию для аутентификации пользователя, на сервере отображается экран согласия (гдеУстановлен tomcat, а не ПК, на котором работает пользователь). Я знаю, что это странная проблема, и я не могу ничего найти по этому вопросу на форумах.
private Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException {
final String CREDENTIALS_FILE_PATH = "/credentials.json";
final String TOKENS_DIRECTORY_PATH = "/tokens";
final List<String> SCOPES = Collections.singletonList(DriveScopes.DRIVE);
InputStream in = this.getClass().getResourceAsStream(CREDENTIALS_FILE_PATH);
if (in == null) {
throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH);
}
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in));
// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH)))
.setAccessType("offline")
.build();
LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(9999).build();
return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user");
}
После вызова этого метода приложение открывает браузер сервера по умолчанию (Chrome) и показывает согласиеэкран. Я не знаю, что я делаю здесь не так. Спасибо за помощь. Ура! * * 1004