如何以编程方式设置 Google API 键?我收到 "The request is missing a valid API key." 错误 (403)

How can I set Google API Key programmatically? I'm getting "The request is missing a valid API key." Error (403)

我正在访问 LabVIEW 中的 .NET DLL 以进行 google 翻译 API (Google.Cloud.Translation.V2.dll),并尝试设置 "GOOGLE_APPLICATION_CREDENTIALS" 通过命令提示符,如 Google 中关于如何设置所有内容以使翻译 API 正常工作的示例所示。它似乎不起作用,当我 运行 我的代码时,我收到 "missing a valid API key" 错误 (403)。我想我需要以编程方式设置密钥,但我无法在任何地方找到有关如何以编程方式设置 API 密钥的任何文档或示例。以下是我在尝试将一些德语文本翻译成英语时收到的 .NET 错误。

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 密钥?我下载了所有这些(因为它们是依赖项,我不确定在 LabVIEW 中访问 Google API 时我需要什么)并查看了我可以在所有这些中使用的潜在方法。他们是:

Google.Cloud.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.Interactive.Async.dll

我怀疑是否有太多用户使用过来自 LabVIEW 的这些 dll,我最好的建议是找到一个干净的 .net 示例并确定从中重现 api 调用的步骤。也就是说,如果您甚至可以在 LabVIEW 中构建所需的程序集,因为您不能总是根据所需的对象和数据类型使用 .net API 来做到这一点,因此有时很难匹配。我已经完成了很多 .net 工作,但从未使用 google API,但通常只是通过首先复制适用于 .net 本机的内容来找到解决方案。

我使用以下代码在 C# 中设置了 "GOOGLE_APPLICATION_CREDENTIALS" 系统环境变量:

string keyFilepath = @"JSON\Key\FilePath\Here";
System.Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", keyFilepath);

我在 LabVIEW 中使用以下代码完成了相同的代码。

https://imgur.com/a/M0F0H8F

第二个 window 显示 selected .NET 常量被传递到第一个调用节点。创建传递到调用节点的常量引用,右键单击 select class,浏览到 C:\WINDOWS\Microsoft.NET\Framework\ and select 你的最新版本PC 上的框架,并深入研究 mscorlib。

我使用以下 LabVIEW 代码完成了德语翻译,正确的 window 是 selected .NET 常量被传递到第一个调用节点。 https://imgur.com/a/GFfI4qh