为 Java Google 翻译设置API_Key



我正在尝试学习Google翻译API如何与Java一起工作,但是我无法弄清楚如何输入API密钥以进行授权。 API 密钥说明说使用 key=API_KEY 参数传递它,但我不确定这是在哪里输入的。 这是添加到主类还是输入到另一个子类中的某个地方?

我正在使用在Windows 10上运行的Eclipse作为我的平台。 我的基本配置来自 https://cloud.google.com/translate/docs/quickstart-client-libraries#client-libraries-install-java。 按照这些步骤,我已经在谷歌注册并创建了API密钥,下载了.JSON 文件到我的笔记本电脑,并安装了 Google Cloud Tools for Eclipse,并按照这些说明在此 URL https://cloud.google.com/eclipse/docs/libraries?utm_source=github&utm_medium=google-cloud-java&utm_campaign=ToolsforEclipse 进行配置。

我用来测试的代码是 https://cloud.google.com/translate/docs/quickstart-client-libraries#client-libraries-install-java 快速入门中的示例 Java 代码。

// Imports the Google Cloud client library
import com.google.cloud.translate.Translate;
import com.google.cloud.translate.Translate.TranslateOption;
import com.google.cloud.translate.TranslateOptions;
import com.google.cloud.translate.Translation;
public class QuickstartSample {
public static void main(String... args) throws Exception {
// Instantiates a client
Translate translate = TranslateOptions.getDefaultInstance().getService();
// The text to translate
String text = "Hello, world!";
// Translates some text into Russian
Translation translation =
translate.translate(
text,
TranslateOption.sourceLanguage("en"),
TranslateOption.targetLanguage("ru"));

System.out.printf("Text: %s%n", text);
System.out.printf("Translation: %s%n", translation.getTranslatedText());
}
}

我尝试修改我的Windows环境变量以指向PATH变量GOOGLE_APPLICATION_CREDENTIALS=c:_project\translation.json,但这似乎没有任何区别。

这是我尝试运行程序时 Eclipse 返回的错误消息,

Aug. 25, 2019 10:08:29 P.M.  
com.google.auth.oauth2.ComputeEngineCredentials runningOnComputeEngine 
INFO: Failed to detect whether we are running on Google Compute Engine. 
Exception in thread "main" com.google.cloud.translate.TranslateException: The request is missing a valid API key.   
at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:62)  
at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:156)     
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:124)     
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:121)     
at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:105)  
at com.google.cloud.RetryHelper.run(RetryHelper.java:76)   
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:50)    
at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:120)  
at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:138)  
at com.example.translate.QuickstartSample.main(QuickstartSample.java:35) 
Caused by: com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden 
{   
"code" : 403,   
"errors" : [ {
"domain" : "global",
"message" : "The request is missing a valid API key.",
"reason" : "forbidden"   
} ],   
"message" : "The request is missing a valid API key.",   
"status" : "PERMISSION_DENIED" }    

阅读文档 这是添加 Google 云翻译api_key的方法。我测试了它,它以两种方式工作。

"请注意,此代码也可以与 API 密钥一起使用。默认情况下,在GOOGLE_API_KEY环境变量中查找 API 密钥。设置 API 密钥后,您可以通过调用通过 TranslateOptions.getDefaultInstance((.getService(( 创建的翻译服务上的方法来进行 API 调用。

您还可以显式设置 API 密钥,如下所示:">

Translate translate = TranslateOptions.newBuilder().setApiKey("myKey").build().getService();

https://cloud.google.com/docs/authentication/production

https://github.com/googleapis/java-translate

最新更新