Таким образом, есть способ авторизации на сервисах Google API с использованием токенов JWT, описанных здесь: Авторизация сервисной учетной записи без OAuth .
Я пытался следовать этой инструкции:
1. Create a service account. Be sure to keep the JSON file you get when you create the account.
Готово.
2. Get the API's service name and API name from the service definition file on GitHub.
Я зашел на GitHub-репозиторий API Google и начал поиск.Мне нужно получить доступ к API Androidpublisher.Итак, сначала я попытался изучить структуру папок и понять, где находится необходимый API.Неудачно.Затем я попытался найти во всем репозитории файлы * .yaml по ключевым словам «androidpublisher» и «android».Не повезло снова.Я действительно нашел что-то по ключевому слову "издатель": это был pubsub API , но, похоже, это не то, что я ищу.
Хорошо, давайте прочтем это еще раз:
If the API you want to call has a service definition published in the Google APIs GitHub repository, you can make authorized API calls using a JWT instead of an access token.
Таким образом, в основном это означает, что любой API может или не может быть опубликован там.
В этом ТА вопрос я нашел способ авторизации для API Androidpublisher, используя файл JSON с учетными данными и клиентскую библиотеку Java для Google Play Developer API :
private static Credential authorizeWithServiceAccount() throws IOException {
log.info("Authorizing using Service Account");
try (FileInputStream fileInputStream = new FileInputStream(JSON_PATH)) {
return GoogleCredential.fromStream(fileInputStream, HTTP_TRANSPORT, JSON_FACTORY)
.createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER));
}
}
Итак, я предполагаю, что есть способ авторизации там с использованием токенов JWT.Но я не могу использовать библиотеку Java, потому что мой сервис будет работать на C ++.И, к сожалению, Google не предоставил библиотеку для разработчиков на C ++.
В какой-то момент я так отчаялся, что даже попытался скомпилировать этот код на Java и запустить его просто, чтобы увидеть, ГДЕ он отправляет свой HTTPзапросы к (используя отладчик или Wireshark ).Но я не Java-разработчик, и после часа решения проблем с зависимостями у меня все еще были некоторые проблемы с «отсутствующим хранилищем ключей Java» (или что-то в этом роде) при выполнении кода.Итак, я сдался.
Итак, мой последний вопрос: Каковы Service name
и API name
для API Androidpublisher?
Я должен был получитьэти значения на втором шаге этой инструкции .Но я не смог.Я чувствую, что это единственная информация, которую я сейчас упускаю, чтобы выполнить свою задачу.