Подключение к google sheets api через сервисный аккаунт

Пытаюсь организовать сохранение данных приложения в таблице google. Для этого из приложения надо авторизоваться к api google. Использовал вот такой способ и он работает, но требует авторизации через браузер, соответственно только в ручном режиме:

InputStream in = GoogleAuthorizeUtil.class.getResourceAsStream("/file");
    GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(
            GsonFactory.getDefaultInstance(), new InputStreamReader(in));

    List<String> scopes = Arrays.asList(SheetsScopes.SPREADSHEETS);

    GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
            GoogleNetHttpTransport.newTrustedTransport(), GsonFactory.getDefaultInstance(), clientSecrets, scopes)
            .setDataStoreFactory(new MemoryDataStoreFactory())
            .setAccessType("offline").build();
    Credential credential = new AuthorizationCodeInstalledApp(
            flow, new LocalServerReceiver()).authorize("id");

Выяснил что для автоматической авторизации можно использовать сервисный акк гугла, но через эти методы уже не работает. Может кто-то может подсказать мне адекватный способ авторизации на java. Казалось бы задача простая, но почему все так не для людей-то.


Ответы (0 шт):