API Google Translate: запросы от этого клиентского приложения < empty > заблокированы

ZN123 спросил: 28 марта 2018 в 04:51 в: java

Я получаю ошибку 403 - Запросы из этого клиентского приложения Android заблокированы с использованием платного API перевода Google Cloud Platform. Работает отлично, когда ограничения установлены равными 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. ком / @ amsanjeev / добавлений-перевод-апи-на-андроид-приложений-788c5bca5521

1 ответ

nhoxbypass ответил: 22 апреля 2018 в 01:32

Наконец-то я нашел способ.

При настройке ограничения ключа API для приложения Android вы указали имя пакета и отпечаток сертификата 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);

Подробный ответ можно найти здесь. .

ZN123 ответил: 23 апреля 2018 в 07:52
Это один из возможных обходных путей, но по-прежнему нет решения для Translate API.
nhoxbypass ответил: 23 апреля 2018 в 02:47
@ ZN123 Да, но это не обычный ключ API браузера, который менее безопасен ...