Google Vision API указывает файл JSON

Я пытаюсь пройти аутентификацию в Google Vision API с помощью файла JSON. Обычно я делаю это, используя GOOGLE_APPLICATION_CREDENTIALS переменная окружения, которая указывает путь к самому файлу JSON.

Однако я должен указать это в самом приложении и выполнить аутентификацию с использованием содержимого файла JSON.

Теперь я попытался указать CallSettings затем передать его в качестве параметра ImageAnnotatorClient.Create метод. Конечно же, CallSettings Объект может быть идеально создан путем чтения информации аутентификации из файла JSON, но передачи его в качестве параметра ImageAnnotatorClient кажется, не имеет значения, как ImageAnnotatorClient.Create Метод все еще ищет переменную среды и бросает InvalidOperation исключение, указывающее, что переменная среды не может быть найдена.

Любая идея, как я могу получить желаемое поведение?

Документы Google Vision

2 ответа

using System;
using Google.Apis.Auth.OAuth2;
using Google.Cloud.Vision.V1;
using Grpc.Auth;

namespace GoogleVision
{
    class Program
    {
        static void Main(string[] args)
        {
            string jsonPath = @"<path to .json credential file>";

            var credential = GoogleCredential.FromFile(jsonPath).CreateScoped(ImageAnnotatorClient.DefaultScopes);

            var channel = new Grpc.Core.Channel(ImageAnnotatorClient.DefaultEndpoint.ToString(), credential.ToChannelCredentials());

            var client = ImageAnnotatorClient.Create(channel);

            var image = Image.FromFile(@"<path to your image file>");

            var response = client.DetectLabels(image);

            foreach (var annotation in response)
            {
                if (annotation.Description != null)
                    Console.WriteLine(annotation.Description);
            }
        }
    }
}
      var jsonPath = "<YOUR PATH>";

var imageAnnotatorClientBuilder = new ImageAnnotatorClientBuilder
{
    CredentialsPath = jsonPath
};

var client = imageAnnotatorClientBuilder.Build();

IReadOnlyList<EntityAnnotation> textAnnotations = client.DetectText(image);
foreach (EntityAnnotation text in textAnnotations)
{
    Console.WriteLine($"Description: {text.Description}");
}
Другие вопросы по тегам