我收到了错误403 - 使用付费的Google Cloud Platform Translation API阻止了此Android客户端应用程序的请求。当限制设置为none时,效果很好。 有一些线索报告类似的问题,但没有人回答。
我在一些例子中看到,有一个版本有.setApplicationName(),我认为这可能有所帮助,但我无法找到那个版本。
使用的代码是:`
private void translate(String textToTranslate, String targetLanguage, TranslateCallback callback) {
try {
TranslateOptions options = TranslateOptions.newBuilder()
.setApiKey( < api_key >)
.build();
Translate trService = options.getService();
Translation translation = trService.translate(textToTranslate,TranslateOption.targetLanguage(targetLanguage));
callback.onSuccess(translation.getTranslatedText());
}
catch(Exception e) {
callback.onFailure();
}
}`
来自:https://medium.com/@amsanjeev/adding-translate-api-to-android-apps-788c5bca5521
答案 0 :(得分:1)
最后我找到了一条路。
为Android应用设置API密钥限制时,您指定了包名称和SHA-1证书指纹。因此,当您向Google发送请求时,您必须在每个请求的标头中添加这些信息。
connection.setRequestProperty("X-Android-Package", "com.example.awesomeapp");
String sign = "5D:5A:12:D3:......".toLowerCase(); //Your SHA1 key in lower cased.
connection.setRequestProperty("X-Android-Cert", sig);
可以找到详细答案here。