ключ google api v3 работает локально (dev), но не в производстве

Я пытаюсь использовать API автозаполнения Google Places на своем сайте, но когда я отправляю URL-адрес (в данном случае через cURL на php), страница не возвращает результатов (полностью пустая страница). Но это происходит только тогда, когда я вызываю страницу с моего веб-хостинга; приложение localhost dev работает нормально. Если я вставлю URL-адрес ниже в браузер, он тоже будет работать нормально. Моя тестовая страница php имеет что-то вроде этого:


    function curl_file($url, $timeout=0){
        $ch = curl_init();
        curl_setopt( $ch, CURLOPT_URL, $url );
        //curl_setopt ($ch, CURLOPT_HEADER, 1);
        curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
        curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
        $str = curl_exec( $ch );
        curl_close( $ch );
        return $str;
    } 

    $content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298");
    echo $content;

Переменная content должна отображать тот же ответ JSON, что и в браузере, но страница отображается абсолютно пустой. Может ли кто-нибудь помочь мне в этом?

p.s.: для моего ключа Google API установлено значение «Любой реферер разрешен». Я пытался поставить Rerefers URL-адрес сайта *.imoveisgo.com/*, но тоже не работает.

Спасибо всем!!


person user1863009    schedule 29.11.2012    source источник


Ответы (1)


Я думаю, что это проблема SSL cURL. Пожалуйста, попробуйте этот код:

function curl_file($url, $timeout=0){
  $ch = curl_init();
  curl_setopt( $ch, CURLOPT_URL, $url );
  //curl_setopt ($ch, CURLOPT_HEADER, 1);
  curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
  curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
  $str = curl_exec( $ch );
  if(curl_errno($ch)) {
    echo "Err#".curl_error($ch);
    echo curl_error($ch);
  }
  curl_close( $ch );
  return $str;
} 

$content = curl_file("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=flamboyant&location=-16.698053,-49.268947&radius=20000&sensor=false&key=AIzaSyBzdiVqEIh2CXBm3gNUsvWdIl1Z-NvW298");
echo $content;
person wf9a5m75    schedule 29.11.2012
comment
я не знал об этой проблеме SSL. Используя код, я мог увидеть некоторую ошибку при проверке сертификата. - person user1863009; 30.11.2012
comment
я не знал об этой проблеме SSL. Используя код, я мог увидеть некоторую ошибку при проверке сертификата. я нашел код, который игнорирует эту проверку. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); Большое спасибо!!! - person user1863009; 30.11.2012