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?
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!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With