mac01021
mac01021

Reputation: 825

Using the Google Cloud Vision API with a simple API key

I am using the Google Cloud Vision Java API client documented here: https://cloud.google.com/vision/docs/reference/libraries.

The following quickstart code works fine if I use the implicit default credentials by setting the GOOGLE_APPLICATION_CREDENTIALS environment variable to reference a json file for the right "service account".

// Imports the Google Cloud client library
import com.google.cloud.vision.spi.v1.ImageAnnotatorClient;
import com.google.cloud.vision.v1.AnnotateImageRequest;
import com.google.cloud.vision.v1.AnnotateImageResponse;
import com.google.cloud.vision.v1.BatchAnnotateImagesResponse;

...


public class QuickstartSample {
  public static void main(String... args) throws Exception {
    // Instantiates a client
    ImageAnnotatorClient vision = ImageAnnotatorClient.create();

    ...

    BatchAnnotateImagesResponse response = vision.batchAnnotateImages(requests);
    List<AnnotateImageResponse> responses = response.getResponsesList();

    ...
  }
}

However, I want to authenticate to the API using a simple (single-string) API key rather than a service account, and I cannot find documentation explaining how to do that through this java library. Is it possible?

Upvotes: 9

Views: 4941

Answers (1)

S&#233;rgio Sousa
S&#233;rgio Sousa

Reputation: 81

It's possible: Create an ImageAnnotatorSettings like:

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

replace your line

ImageAnnotatorClient vision = ImageAnnotatorClient.create();

with

ImageAnnotatorClient vision = ImageAnnotatorClient.create(ias);

Give it a try!

Upvotes: 0

Related Questions