2016-12-05 2 views
2

Я использую API Карт Google v2. Я проверил четыре раза, что ключ API и SHA1 для моего приложения верны. У меня есть раскрывающееся меню, когда при нажатии одного из элементов на карте отображаются маркеры для этого элемента. Я использовал это раньше, и он работал нормально, но теперь это не так. Я удалил старые ключи и создал новые, думая, что он исправит проблему, но это не так. Я называю этот адрес, чтобы получить необходимый ответ:Получение ответной ошибки для API Карт Google, если ключ и SHA1 верны в Android?

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=34.9782618,-120.1863181&radius=10000&query=walmart&key={MY_KEY}

Но когда я нажимаю на кнопку, чтобы вызвать этот URL, ответ, который возвращается это:

{"error_message" : "This IP, site or mobile application is not authorized to use this API key. 
     Request received from IP address {BLOCKED}, 
     with empty referer", "html_attributions" : [], 
     "results" : [], "status" : "REQUEST_DENIED"} 

Что может» возможно, если ключ API и SHA1 верны. Я уже часами пытаюсь понять, в чем проблема, и я не могу понять, что это за жизнь. Если я установил ограничение на API для Android-приложения, тогда он должен распознать прилагаемый отпечаток и работать нормально. Я попытался запустить его в отладке и выпуске.

ПРИМЕЧАНИЕ: IP-адрес заблокирован здесь по соображениям безопасности и конфиденциальности.

ответ

1

В консоли Google API отметьте, используется ли ключ, который вы используете, для приложений Android. Несмотря на то, что вы делаете этот звонок из приложения для Android, вы получаете доступ к API-интерфейсу Places, как если бы вы были браузером, вызывая конечную точку напрямую, а не используя Android Places API. Вам нужно либо сделать отдельный ключ браузера для прямых HTTP-вызовов, либо использовать API Android.

+0

У меня он ограничен Android, но он по-прежнему возвращает тот же доступ, что и отрицательный ответ –

+0

Вам нужен тот, который НЕ ограничен Android, потому что вы делаете вызов как браузер, а не приложение для Android. – iagreen

+0

Я пробовал его без каких-либо ограничений, но безрезультатно –

1

Для карты Google вы можете просто использовать Api Key. Не нужно вводить ключ шага. Также для Google Places api сначала мы использовали Brower key, но на данный момент Api key достаточно для Goggle Places api.

Просто добавьте ключ api. Я проверил его с помощью своего собственного ключа api и его работоспособности. Добавьте свой.

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=34.9782618,-120.1863181&radius=10000&query=walmart&key=YOUR_API_KEY

enter image description here

Примечание: Еще одна вещь не написать ключ API непосредственно в манифесте. Сначала объявите его в string.xml, затем используйте его.

, например.

  <meta-data 
      android:name="com.google.android.geo.API_KEY" 
      android:value="@string/google_geo_api_key" /> 
+0

Я пробовал только с ключом API и отсутствием отпечатка SHA1. Все еще дает тот же ответ. –

+0

также проверьте свой манифест. не объявляйте непосредственно api-ключ в своем манифесте. проверьте мой отредактированный ответ. –

+0

У меня уже есть метаданные. Карта загружается просто отлично. Когда я пытаюсь вызвать этот url с тем же ключом api, что и карта или другой, я все еще получаю сообщение об ошибке, что приложение не имеет права использовать ключ api:/ –