Google размещает API — «REQUEST_DENIED» при использовании прокси-сервера на стороне сервера в EC2

Я застрял, пытаясь заставить API работать с Google Places. Я использую PHP-прокси на стороне сервера для запроса — не потому, что хочу, а потому, что он является частью JQuery-POI-Mapper.

Я использую сервер Amazon EC2 без статического IP-адреса. На данный момент у меня закончились статические IP-адреса, но я найду время, чтобы запросить больше, если люди думают, что это проблема. Я определил текущий общедоступный IP-адрес моего сервера EC2, выполнив на сервере эту команду:

curl http://169.254.169.254/latest/meta-data/public-ipv4


Затем я перешел на страницу https://code.google.com/apis/console и создал новый ключ API. Я выбрал ключ API на стороне сервера и использовал общедоступный IP-адрес своего сервера EC2.


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

  • API Карт Google v2
  • API Карт Google v3
  • API геолокации Google Карт
  • API мест
  • API статических карт

Вот скриншот моих сервисов:

введите здесь описание изображения

Код прокси, работающий на сервере EC2, является частью коммерческого пакета, поэтому я не должен публиковать весь код, но он очень короткий, и важная часть:

$json = file_get_contents($url);

Переменная $url в моем случае была:

https://maps.googleapis.com/maps/api/place/search/json?location=-37.7133771,145.14891620000003&radius=2000&types=bakery&sensor=false&key=AIzaSyCCUV...

Я получаю ответ:

{
   "html_attributions" : [],
   "results" : [],
   "status" : "REQUEST_DENIED"
}

Я проверил, не превысил ли я уже свою квоту, но все выглядит нормально. Что интересно, Google показывает, что сегодня я отправлял запросы к Places API, поэтому Google точно знает, что запросы исходят от меня.

Вот снимок экрана моего отчета о трафике API, который полностью получен в результате тестирования:

введите здесь описание изображения

Любые советы будут высоко ценится.

Спасибо, Брет.


person clone45    schedule 01.01.2013    source источник


Ответы (1)


Вам нужен статический IP-адрес, чтобы успешно использовать IP-блокировку с ключом API сервера.

person Chris Green    schedule 02.01.2013
comment
Благодаря тонну. Я возьму один и посмотрю, работает ли он. Если это так, я приму ваш ответ. :-) - person clone45; 03.01.2013
comment
Привет Крис, еще раз спасибо. Это действительно было проблемой. Интересно, однако, что после того, как я получил эластичный IP-адрес от Amazon и связал его с моим сервером EC2, я не мог использовать IP-адрес для доступа к сайту. Если бы я попытался это сделать, карты Google вообще бы не отображались. Вместо этого мне нужно было использовать общедоступный DNS, тогда все заработало. (Конечно, мне также пришлось изменить свой зарегистрированный IP-адрес на экране доступа к API Google.) Ура! - person clone45; 05.01.2013