Получаем рейтинг организации на картах Google через API

Суть задачи: на картах расположено несколько организаций. Пользователи оставляют отзывы, ставят оценки, в результате — рейтинг меняется. Задача на первый взгляд простая — получать рейтинг организаций на картах Google. Однако есть целый ряд нюансов, с которыми нам предстоит столкнуться.

Для начала давайте получим ключ разработчика.

Получение Google API Key

  • Переходим в  Google Cloud Platform Console
  • Выбираем уже существующий проект, либо создаем новый
  • В главном меню находим пункт «API и сервисы», далее  «Учетные данные»

  • Нажимаем «Создать учетные данные», далее «Ключ API»

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

Подключение библиотеки Places API

Облачная платформа Google работает по принципу маркетплейса. Не достаточно получить ключ разработчика. К нашему проекту нужно подключить дополнительную библиотеку, с которой мы и будем работать в дальнейшем.

  • В главном меню выбираем пункт «Каталог».
  • В поисковой строке вводим «places api», находим соответствующее названию расширение
  • Переходим на его страницу, нажимаем на кнопку «Включить»

На этом настройки в Google Cloud Platform Console завершены.

Получение Google Places ID

Для получения сведений нам потребуется знать уникальный идентификатор организации. Получить это значение можно двумя способами:

  • в поиске Google вводим запрос так, чтобы в правой части получить карточку интересующей нас организации. Далее в исходном коде страницы выполняем поиск по запросу data-pid=

  • воспользуемся специальным сервисом Place IDs, в котором нам также нужно задать подходящий поисковой запрос

Получаем рейтинг организации на карте

Теперь можно приступать непосредственно к получению рейтинга организации на Google-картах. Выполняем на сервере следующий скрипт:

$url = "https://maps.googleapis.com/maps/api/place/details/json?key=КЛЮЧ_АПИ&placeid=ИДЕНТИФИКАТОР_МЕСТОПОЛОЖЕНИЯ";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec ($ch);
$res = json_decode($result,true);
$google_rating = $res['result']['rating'];

Предварительно убедитесь, что на сервере установлена и работает библиотека CURL.

В переменной $res — будет содержаться большой массив данных, переменная $google_rating возвращает интересующий нас рейтинг организации.

Дополнительные возможности и ограничения

Зная place_id организации можно сформировать несколько «быстрых» ссылок.

Ссылка на организацию на картах Гугла:
https://www.google.com/maps/place/?q=place_id:[указать_значение]

Ссылка на отзывы:
https://search.google.com/local/reviews?placeid=[указать_значение]

Ссылка «написать отзыв»:
https://search.google.com/local/writereview?placeid=[указать_значение]

Что касается ограничений. Они есть. Здесь конкретики не будет. Уверенно могу сказать, что год-полтора назад — это было 25 000 запросов в сутки. Сейчас — сильно меньше и лимит стал хитрее: ограничения на количество запросов в минуту, в час. Учитывайте этот фактор, как на этапе разработки, так и при дальнейшей работе. При запросе обязательно получайте отладочную информацию. По ее содержимому вы обязательно поймете, что столкнулись с лимитами.

Опубликовано: 18 февраля 2020 года, в рубрике «Разработка».

Теги:

Оставить комментарий

5000
  Подписаться  
Уведомление о
Поблагодарить автора статьи
Зачем это нужно