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

问题描述 投票:0回答:2

我正在LabVIEW中访问用于谷歌翻译API(Google.Cloud.Translation.V2.dll)的.NET DLL,并尝试通过命令提示符设置“GOOGLE_APPLICATION_CREDENTIALS”,如Google的示例所示,如何将所有内容设置为让翻译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

.net google-api labview google-translation-api
2个回答
0
投票

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


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

© www.soinside.com 2019 - 2024. All rights reserved.