java - 有没有办法在代码中为谷歌云翻译设置 API 密钥?
问题描述
我正在尝试使用 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.
解决方案
创建环境变量: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();
推荐阅读
- ios - 图像裁剪之外的 react-native-perspective-image-cropper 在 IOS 中添加白色背景
- javascript - Vue 在下拉更新中观察多个绑定的变化
- excel - 通过 office.js 将 OMML 公式插入 Excel 工作表
- javascript - 使用 Javascript 对选择框进行排序
- python - 如何将 cython 类型用于 python 对象列表?
- azure-devops - 阶段模板的条件在 Azure yml 管道中不起作用
- javascript - 在 Angular FormGroup 中添加 Select 并绑定选定的值
- javascript - 反转 y 数据和 y 轴
- list - 枚举过滤:在索引 + 1 处包含值
- python - 无法在 python 中获取 XML 元素的文本