我正在尝试使用。我已经生成了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键放入并编写如下:
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.
发布于 2021-09-02 04:12:40
创建一个环境变量: GOOGLE_API_KEY
环境变量以API键作为值。
然后执行以下代码:
import com.google.cloud.translate.Translate;
import com.google.cloud.translate.TranslateOptions;
Translate translate = TranslateOptions.getDefaultInstance().getService();
-编辑
这个怎么样:
HttpTransportOptions transportOptions = TranslateOptions.getDefaultHttpTransportOptions();
transportOptions =
transportOptions.toBuilder().setConnectTimeout(60000).setReadTimeout(60000).build();
TranslateOptions translateOptions =
TranslateOptions.newBuilder()
.setApiKey(apiKey)
.setTransportOptions(transportOptions)
.build();
Translate translate = translateOptions.getService();
https://stackoverflow.com/questions/69029007
复制