Как я могу установить ключ Google API программно? Я получаю сообщение «В запросе отсутствует действительный ключ API». Ошибка (403)

#.net #google-api #labview #google-translation-api

#.net #google-api #labview #google-translation-api

Вопрос:

Я обращаюсь к .NET DLL в LabVIEW для API перевода Google (Google.Облако.Translation.V2.dll) и попытался установить «GOOGLE_APPLICATION_CREDENTIALS» через командную строку, как показано в примере Google о том, как настроить все, чтобы заставить translate API работать. Похоже, это не работает, и когда я запускаю свой код, я получаю ошибку «отсутствует действительный ключ API» (403). Я думаю, что мне нужно установить ключ программно, но я нигде не могу найти никакой документации или примеров о том, как установить ключ API программно. Ниже приведен .ЧИСТАЯ ошибка, которую я получил при попытке перевести некоторый текст с немецкого на английский.

 Google.GoogleApiException: Google.Apis.Requests.RequestError
The request is missing a valid API key. [403]
Errors [
Message[The request is missing a valid API key.] Location[ - ] Reason[forbidden] Domain[global]
]
  

Нужен ли мне доступ к другой библиотеке DLL для установки ключа API? Я загрузил все это (потому что они были зависимостями, и я не был уверен, что все, что мне нужно при доступе к Google API в LabVIEW) и просмотрел потенциальные методы, которые я мог бы использовать во всех из них. Это они:

Google.Облако.Translation.V2.dll, Google.Apis.Translate.v2.dll, Google.Api.Gax.dll, Google.Api.Gax.Rest.dll, Google.Apis.Auth.dll, Google.Apis.Auth.PlatformServices.dll, Google.Apis.Core.dll, Google.Apis.dll, Google.Apis.PlatformServices.dll, Newtonsoft.Json.dll, System.Интерактивный.Async.dll

Ответ №1:

Я сомневаюсь, что слишком много пользователей использовали эти библиотеки DLL из LabVIEW, лучшее, что я могу предложить, это найти чистый пример .net и определить шаги из него для воспроизведения вызова api. То есть, если вы даже можете создавать необходимые сборки в LabVIEW, поскольку вы не всегда можете сделать это с помощью .net APIs в зависимости от объектов и типов данных, которые ему нужны, иногда бывает сложно сопоставить вещи. Я проделал много работы с .net, но никогда с google API, но обычно нахожу решения, просто сначала копируя то, с чем работает .изначально чистый.

Комментарии:

1. Правильно. Я изо всех сил пытался найти чистый пример .net, и это было моей проблемой, потому что Google объясняет, что вам нужно установить ключ API в powershell или командной строке в их объяснении здесь, в их «Перед началом # 2»: cloud.google.com/translate/docs/… Я смог создать объект service и нахожусь на грани того, чтобы перевести некоторый текст, я просто по какой-то причине не могу правильно установить ключ API. Я специально ищу пример, который устанавливает ключ API программно, чтобы я мог это сделать. Спасибо

Ответ №2:

Я выполнил настройку системной переменной окружения «GOOGLE_APPLICATION_CREDENTIALS» в C # с помощью следующего кода:

 string keyFilepath = @"JSONKeyFilePathHere";
System.Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", keyFilepath);

  

Я выполнил этот же код в LabVIEW со следующим кодом.

https://imgur.com/a/M0F0H8F

Во втором окне отображается выбранный .Сетевая константа передается в первый вызываемый узел. Создайте постоянную ссылку, переданную в узел вызова, щелкните правой кнопкой мыши и выберите класс, перейдите к C:WINDOWSMicrosoft.NETFramework и выберите последнюю версию Framework на своем ПК и погрузитесь в mscorlib.

Я выполнил перевод на немецкий язык с помощью следующего кода LabVIEW, выбранным является правое окно .Сетевая константа передается в первый вызываемый узел. https://imgur.com/a/GFfI4qh