Вы заявляете, что пытаетесь использовать учетную запись службы, но используемый вами код был разработан для веб-приложения для входа в систему с использованием Oauth2. Это не будет работать с учетными данными учетной записи службы. Необходимо использовать правильный код с учетными данными типа corect.
служебная учетная запись
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
...
// Build service account credential.
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("MyProject-1234.json"))
.createScoped(Collections.singleton(PlusScopes.PLUS_ME));
// Set up global Plus instance.
plus = new Plus.Builder(httpTransport, jsonFactory, credential)
.setApplicationName(APPLICATION_NAME).build();
...
Явная загрузка учетных данных
Google auth libray
Чтобы получить учетные данные из служебной учетной записи JSON используйте ключ GoogleCredentials.fromStream (InputStream) или GoogleCredentials.fromStream (InputStream, HttpTransportFactory). Обратите внимание, что учетные данные должны быть обновлены до того, как токен доступа станет доступен.
GoogleCredentials credentials = GoogleCredentials.fromStream(new FileInputStream("/path/to/credentials.json"));
credentials.refreshIfExpired();
AccessToken token = credentials.getAccessToken();
// OR
AccessToken token = credentials.refreshAccessToken();