2015-05-28 2 views
3

Я пытаюсь использовать API надстройки Google Maps, но он не возвращает никаких результатов. Код, я использую ниже:Google Maps Elevation API не возвращает результаты (JSON/PHP)

<?php 
$results = file_get_contents("https://maps.googleapis.com/maps/api/elevation/json?locations=-37.8,144.815&key=[myAPIkey]&sensor=false"); 
//$results = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=Paris,France&sensor=false&key=[myAPIkey]"); 
$json = json_decode($results, true); 
echo ${results}; 
//print_r($json); ?> 

комментируемой часть с помощью API геокодирования, который работает для меня, но как только я изменить переменные результаты $ в API Elevation не возвращает никаких результатов вообще. Когда я помещаю URL-адрес в свой браузер, я получаю результаты. Я включил API в консоли и имею рабочий ключ API.

У кого-нибудь есть идеи, почему это не работает?

+0

Используйте 'return $ json;' вместо 'echo $ {results};' – Zl3n

+0

Все еще возвращает 0 результатов. file_get_contents() возвращает строку так: "echo $ {results};" должен работать нормально. Я даже изменил его как «результаты эха $»; просто, чтобы быть уверенным – Sean

+0

Хорошо, с google api, вы должны указать имена доменов, где вы можете использовать ключ. Вы это сделали? – Zl3n

ответ

2

Убедитесь в консоли API, что Elevation API включен и приложение браузера ключ имеют Any referrer allowed или если вы используете серверное приложение ключAny IP allowed

В противном случае попробуйте использовать Curl

$curlUrlRequest = 'https://maps.googleapis.com/maps/api/elevation/json?locations=-37.8,144.815&key=[myApiKey]&sensor=false'; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_URL, $curlUrlRequest); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
$response = curl_exec($ch); 
var_dump($response); 
+0

Спасибо, что работает – Sean

+0

Установка двух параметров CURLOPT_SSL_VERIFYHOST и CURLOPT_SSL_VERIFYPEER решили мою проблему, спасибо –