【发布时间】:2018-08-29 00:18:03
【问题描述】:
我关注https://cloud.google.com/translate/docs/reference/libraries#client-libraries-usage-java开始java客户端演示。
我已经有set authentication json 文件到环境变量GOOGLE_APPLICATION_CREDENTIALS。但是,当我运行 java 示例代码时,我得到了 translateException。
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:61)
at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:144)
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:113)
at com.google.cloud.translate.TranslateImpl$4.call(TranslateImpl.java:110)
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"
}
文档显示此 JSON 文件包含密钥信息。
示例代码如下所示
// 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());
我不知道如何设置 api-key。
在我为key 和credentials 设置环境变量后,它仍然不起作用。
【问题讨论】:
-
请编辑您的问题并包含您的代码。 API 密钥用于访问公共 API,与应用程序凭据不同。
-
TranslateOptions中的setApiKey方法是 @Deprecated。那么如何用 GCP Console 中的自己的密钥替换它呢? @DalmTo -
假设您找到了一个 API 密钥,尝试在 GOOGLE_API_KEY 中设置它 您正在寻找一个公共 API 密钥。
-
我在控制台找到了API key,但是不知道GOOGLE_API_KEY在哪里设置。
-
它是一个环境变量,就像 GOOGLE_APPLICATION_CREDENTIALS 指向服务帐户 json 文件的位置一样。 GOOGLE_API_KEY 你设置的key的值
标签: java google-api google-translate google-api-java-client google-translator-toolkit