[英]Google Cloud Translate - 403 Forbidden Missing API key
我通过Google Cloud Transalte API并决定对我的应用程序使用Java平台
根据文档,使用必需的jar测试了以下代码。 这段代码在我的日食中工作正常
Translate translate = TranslateOptions.getDefaultInstance().getService();
String name = rs.getString("name");
Translation translation1 = translate.translate(name);
String TransalateName = translation1.getTranslatedText();
但是,当将此代码导出到jar中并在Shell脚本/ Unix服务器中运行时,出现以下错误消息,权限已定义-请求缺少有效的API密钥。 我如何以及在哪里可以在Java代码中使用API密钥,我有一个授权的服务帐户。
我已经使用我的服务帐户尝试了Google transalte,它工作正常,下面是示例。 但是我不确定如何在JAVA代码中使用此密钥
CURL命令-运行正常
curl -X POST \
-H "Authorization: Bearer "AUTH_TOKEN_HERE \
-H "Content-Type: application/json; charset=utf-8" \
--data "{
'q': '你好',
'target': 'en',
'model': 'nmt',
}" "https://translation.googleapis.com/language/translate/v2"
错误:
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)
at com.google.api.gax.retrying.DirectRetryingExecutor.submit(DirectRetryingExecutor.java:89)
at com.google.cloud.RetryHelper.run(RetryHelper.java:74)
at com.google.cloud.RetryHelper.runWithRetries(RetryHelper.java:51)
at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:110)
at com.google.cloud.translate.TranslateImpl.translate(TranslateImpl.java:124)
at orderFullfilment.EventDriver.main(EventDriver.java:138)
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"
}
at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113)
at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469)
at com.google.cloud.translate.spi.v2.HttpTranslateRpc.translate(HttpTranslateRpc.java:130)
... 8 more
您错过了对GoogleAPI.setKey的调用。
import com.google.api.GoogleAPI;
import com.google.api.translate.Language;
import com.google.api.translate.Translate;
GoogleAPI.setKey(API_KEY);
GoogleAPI.setHttpReferrer("https://...");
// normally you would catch errors
Translate.DEFAULT.execute(sourceText, Language.fromString(sourceLanguageCode),
Language.fromString(targetLanguageCode));
参见例如https://www.programcreek.com/java-api-examples/?api=com.google.api.GoogleAPI 。 我必须说,令人失望的是,谷歌云文档中没有示例(我能找到)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.