HOWTO создайте GoogleCredential, используя учетную запись службы JSON

Я использую Java SDK для Android Publisher v2 и Oauth2 v2 . Когда я создал учетную запись службы, мне была предоставлена ​​JSON учетной записи службы Google Play Android Developer с идентификатором клиента, электронной почтой, закрытым ключом и т. Д. Я попытался осмотреться и выяснить, как создать учетные данные, чтобы я использовал службу AndoirdPublisher Получать информацию о подписках пользователей, приложениях Android и т. Д. И хранить эту информацию на наших серверных серверах.

Я с трудом пытаюсь понять, как это сделать. Ни одна из документов, которые я видел до сих пор, не помогает в создании GoogleCredential с использованием загруженного JSON.

Например, есть эта документация, но в ней упоминается только файл P12, а не JSON. Я хочу избежать P12, если это возможно, поскольку у меня есть несколько клиентов, и я хотел бы сохранить этот JSON в какой-то базе данных, а затем использовать его для создания учетных данных для каждого клиента.

Чтобы уточнить, я пытаюсь создать объект GoogleCredential, как описано здесь,

 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.sqladmin.SQLAdminScopes; // ... String emailAddress = "123456789000-abc123def456@developer.gserviceaccount.com"; JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(emailAddress) .setServiceAccountPrivateKeyFromP12File(new File("MyProject.p12")) .setServiceAccountScopes(Collections.singleton(SQLAdminScopes.SQLSERVICE_ADMIN)) .build(); 

Но вместо того, чтобы устанавливать учетную запись службы с использованием файла P12, например setServiceAccountPrivateKeyFromP12File() , я хочу использовать JSON, который несет ту же информацию и создан, когда я создал учетную запись службы.

Solutions Collecting From Web of "HOWTO создайте GoogleCredential, используя учетную запись службы JSON"

Я смог решить это, GoogleCredential в исходный код самого GoogleCredential на github (который сейчас находится здесь ).

Оказывается, версия google-api-java-client которая была в моем коде, слегка устарела. Я обновил его до последней 1.20.0 и 1.20.0 я могу прямо указать объект JSON, созданный для создания GoogleCredential. Я хочу, чтобы Google обновил свою документацию.

Вот фрагмент кода,

 InputStream resourceAsStream = AuthTest.class.getClassLoader().getResourceAsStream("Google-Play-Android-Developer.json"); GoogleCredential credential = GoogleCredential.fromStream(resourceAsStream); 

Так просто.