Java-клиент API Google Vision: как явно указать учетные данные API в коде (без использования переменной среды) - PullRequest
0 голосов
/ 11 ноября 2018

Я пытаюсь интегрировать свой проект с Google Vision API

Вот зависимость maven для вас, чтобы проверить версию клиента, с которой я пытаюсь интегрироваться:

<dependency>
   <groupId>com.google.cloud</groupId>
   <artifactId>google-cloud-vision</artifactId>
   <version>1.51.0</version>
</dependency>

Способ, используемый в документации для установки учетных данных аутентификации API, следующий:

Set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the 
file path of the JSON file that contains your service account key

Мне интересно, есть ли способ явно установить учетные данные в коде, так как это более удобно, чем установка переменных среды в каждой среде, в которой мы запускаем наш проект.

Как я знаю для предыдущей версии клиента 1.22, было возможно сделать следующее:

def credentialFile = this.class.classLoader
.getResource(grailsApplication.config.credentialsFile)
GoogleCredential credential = 
GoogleCredential.fromStream(credentialFile.openStream())
        .createScoped(grailsApplication.config.googleScope)

Vision vision = new 
Vision.Builder(GoogleNetHttpTransport.newTrustedTransport(), 
jsonFactory, credential).build()

Но для нового клиентского API я не смог найти способ, и в документации ничего не сказано по этому поводу.

1 Ответ

0 голосов
/ 25 февраля 2019

Возможно: Создайте настройки ImageAnnotator, например:

ImageAnnotatorSettings ias = ImageAnnotatorSettings.newBuilder()
            .setCredentialsProvider(
                    FixedCredentialsProvider.create(#InputStream of your json key#)
            )
            .build();

Добавьте это к своему клиенту и вуаля!

...