Ограничение использования ключа Android для API Google

У меня вопрос о том, как правильно установить имя пакета и отпечаток сертификата SHA-1 в консоли разработчика Google, чтобы ограничить использование моего ключа API Android для моего приложения.

Когда в разделе «Ограничить использование приложений Android» ничего не настроено, мои запросы к API Google Translate работают правильно. API обычно отвечает кодом состояния 200 и моим ожидаемым результатом.

Но когда я указываю имя пакета и отпечаток сертификата SHA-1 для своего приложения с помощью консоли разработчиков, я последовательно получаю 403 Запрещенных ответа, таких как:

HTTP/1.1 403 Forbidden
Vary: Origin
Vary: X-Origin
Content-Type: application/json; charset=UTF-8
Date: Sun, 29 Nov 2015 21:01:39 GMT
Expires: Sun, 29 Nov 2015 21:01:39 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic,p=1
Alt-Svc: quic=":443"; ma=604800; v="30,29,28,27,26,25"
Content-Length: 729

{
 "error": {
  "errors": [
   {
    "domain": "usageLimits",
    "reason": "ipRefererBlocked",
    "message": "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed.",
    "extendedHelp": "https://console.developers.google.com"
   }
  ],
  "code": 403,
  "message": "There is a per-IP or per-Referer restriction configured on your API key and the request does not match these restrictions. Please use the Google Developers Console to update your API key configuration if request from this IP or referer should be allowed."
 }
}

Запрос выглядит следующим образом. Обратите внимание, что в запросе нет заголовка реферера:

GET https://www.googleapis.com/language/translate/v2?key=XXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXX&source=en&target=es&q=test HTTP/1.1
User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1.1; Nexus 6 Build/LVY48H)
Host: www.googleapis.com
Connection: Keep-Alive
Accept-Encoding: gzip

Я предполагаю, что сообщение об ошибке указывает на имя пакета или проблему отпечатка пальца SHA-1, несмотря на его сообщение об «ограничении на IP или на Referer». В то время как ключи браузера позволяют устанавливать ограничение для каждого реферера, я использую ключ Android, и нигде не устанавливается ограничение для каждого IP-адреса или для каждого реферира.

Я уверен, что правильно ввел имя пакета в консоли разработчиков Google. Я читаю название пакета изpackage атрибут наmanifest тег в моем файле манифеста Android.

Я также уверен, что у меня правильно установлен отпечаток пальца SHA-1 в консоли разработчиков Google. Я читаю это значение из моего хранилища ключей с помощью командыkeytool -list -v -keystore /path/to/my/keystore, Я получаю то же значение, когда читаю его из файла APK, используяkeytool -list -printcert -jarfile myAppName.apk, Я устанавливаю тот же файл APK с помощью ADB.

Вот что я вижу в консоли разработчиков:

Я проверял это на нескольких устройствах под управлением Android. Я получаю сообщение об ошибке по Wi-Fi и сотовой сети, независимо от того, проксирую ли я трафик или нет.

Когда я снимаю ограничение с консоли разработчика, приложение снова работает правильно.

Что я здесь не так делаю?

Замечания:Несколько аналогичный вопросы иметь было спросил до, но с нет адекватный ответы, Я не хочу использовать ключ браузера или вообще снять ограничение. Я хочу, чтобы ограничение использования работало правильно.

Ответы на вопрос(2)

Ваш ответ на вопрос