【发布时间】:2021-10-31 20:32:24
【问题描述】:
我正在尝试使用 Google Cloud Translation API。 我已经生成了 API 密钥,但我没有存储我的凭据的 .json 文件。 有没有办法将我的 API 密钥放入代码中,以便我可以使用翻译方法? 我只找到了需要 .json 文件的方法,但我没有。 我发现了一个不推荐使用的方法:
Translate translate = TranslateOptions.newBuilder().setApiKey(API_KEY).build().getService();
但它显示错误:
W/TranslateOptions: Ignoring Application Default Credentials {0}: using explicit setting for API key instead.
W/System.err: java.io.IOException: The Application Default Credentials are not available. They are available if running in Google Compute Engine. Otherwise, the environment variable GOOGLE_APPLICATION_CREDENTIALS must be defined pointing to a file defining the credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
W/System.err: at com.google.auth.oauth2.DefaultCredentialsProvider.getDefaultCredentials(DefaultCredentialsProvider.java:134)
任何帮助将不胜感激!
编辑: 当我把环境变量 GOOGLE API KEY 并写道:
Translate translate = TranslateOptions.getDefaultInstance().getService();
Translation translation = translate.translate("¡Hola Mundo!");
我在 translate.translate() 行上遇到错误,它像 GET 方法一样发送请求,而不是像 POST,这就是为什么它说它缺少有效的 API 密钥,因为它根本没有发送 API 密钥。
com.google.cloud.translate.TranslateException: The request is missing a valid API key.
【问题讨论】:
-
@SusanMustafa 问题对我没有帮助。对不起
-
打印您的环境变量 GOOGLE_API_KEY 并查看那里是否有值以及是否正确。如果存在,则表示您的 API KEY 不正确...
-
怎么做? @SusanMustafa 我的 API 密钥是正确的,因为在 Postman 中我的请求被接受并且文本被翻译。
标签: java android google-cloud-platform cloud google-translation-api