1

我正在LabVIEW中访问谷歌翻译API(Google.Cloud.Translation.V2.dll)的.NET DLL,并尝试通过命令提示符设置“GOOGLE_APPLICATION_CREDENTIALS”,如谷歌关于如何设置一切的示例所示让翻译 API 工作。它似乎不起作用,当我运行我的代码时,我收到“缺少有效的 API 密钥”错误 (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

4

2 回答 2

0

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

于 2019-03-31T05:17:49.950 回答
0

我使用以下代码在 C# 中完成了“GOOGLE_APPLICATION_CREDENTIALS”系统环境变量的设置:

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

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

https://imgur.com/a/M0F0H8F

第二个窗口显示被传递到第一个调用节点的选定 .NET 常量。创建一个传递到调用节点的常量引用,右键单击并选择类,浏览到 C:\WINDOWS\Microsoft.NET\Framework\ 并在您的 PC 上选择最新版本的 Framework,然后进入 mscorlib。

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

于 2019-04-02T15:14:44.277 回答