Я понимаю, что это вопрос, который задавался несколько раз раньше, но я пробовал данные ответы, я чувствую, вверх и вниз и чувствую, что я ударяю головой о стену.
PHP/Curl:
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=?????");
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($this->ch);
var_dump($response);
var_dump(curl_error($this->ch)); die;
Как есть, я получаю "Не удалось разрешить host: maps.googleapis.com; Неизвестная ошибка". Если я добавлю это:
curl_setopt($this->ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 )
Что было предложено в другом сообщении, ошибка изменилась на: "Не удалось разрешить host: maps.googleapis.com; Имя или услуга неизвестна"
В любом случае, я не могу найти способ не получить ошибку. Я могу поместить URL-адрес в веб-браузер, и он отлично подходит для геокодов. У нас есть много других интеграций API, которые используют подобную настройку с cURL и работают нормально, поэтому я не чувствую, что это общая проблема на сервере, но она специфична для этого варианта использования.
Есть идеи?
вы создали свой API геокодирования перед продолжением? если не перейти на http://console.developers.google.com > API и API> API> в API Карт Google, нажмите еще> API геокодирования> включите api и получите свой ключ, чтобы код был похож
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=YOUR_KEY_HERE");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);
print "<pre>";
var_dump($response);
var_dump(curl_error($ch)); die;
если выше не работает, то у вас может быть проблема в библиотеке curl, которую я предполагаю,
кроме того, поскольку вы только запрашиваете данные, вы можете просто использовать
file_get_contents()
<?php
echo file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=YOUR_KEY");
то он будет выводить
{ "results" : [ { "address_components" : [ { "long_name" : "1956", "short_name" : "1956", "types" : [ "street_number" ] }, { "long_name" : "North Mountain View Drive", "short_name" : "N Mountain View Dr",...