谷歌翻译 API:来自此客户端应用程序的请求<empty>被阻止



我收到错误 403 - 来自此 Android 客户端应用程序的请求使用付费 Google Cloud Platform Translation API 被阻止。当限制设置为无时,效果很好。有一些关于报告类似问题的线程,但没有一个回答。

我在一些例子中看到,有一个版本有.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

终于我找到了一种方法。

在为 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);

详细的答案可以在这里找到。

相关内容

最新更新