如何以编程方式设置Google API密钥?我收到“请求缺少有效的API密钥”。错误(403)

时间:2019-03-28 21:16:03

标签: .net google-api labview google-translation-api

我正在LabVIEW中为Google翻译API(Google.Cloud.Translation.V2.dll)访问.NET DLL,并尝试通过命令提示符设置“ GOOGLE_APPLICATION_CREDENTIALS”,如Google的示例中所示一切都可以使Translation 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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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