Когда я удаляю часть ключа API, он работает нормально
$details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $string."&sensor=false";
Когда добавляете ключ API, он говорит, что REQUEST_DENIED.
$apiKey = 'AIzaSyCy2C82dDZlHkwGZ_fCfgh5gBdo50Q8cE0';
$string = str_replace(" ", "+", urlencode($string));
$details_url = "http://maps.googleapis.com/maps/api/geocode/json?address=" . $string."&sensor=false&key=".$apiKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $details_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = json_decode(curl_exec($ch), true);
Это первый раз, когда я использую API геокодирования, и мне нужно работать на основе ключа API, потому что, как только мы не найдем достаточного количества из 2500 запросов в день, мы купим оплату в соответствии с вашим планом. (карта Google для бизнеса)
Ключ API, который я создал, был новым ключом сервера на панели консоли.
что я делаю, чтобы не принять мой ключ API? однако, когда я добавляю ключ API и пытаюсь через браузер, он работает нормально, как показано ниже, и я мог видеть отчеты об использовании и использованную квоту на консоли Google.
https://maps.googleapis.com/maps/api/geocode/json?address=2140+Amphitheatre+Parkway,+Mountain+View,+IN&key=AIzaSyCUDSJ2GBE1DHupbAZT4u8gZqclkIhmb0M
Запрос API должен быть отправлен через https
для начала, а затем вы обнаружите, что срок действия ключа истек.
$string = 'Dundee, Scotland';
$apiKey = 'AIzaSyCy2C82dDZlHkwGZ_fCfgh5gBdo50Q8cE0';
$string = str_replace( " ", "+", urlencode( $string ) );
$url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $string."&sensor=false&key=".$apiKey;
$cacert='c:/wwwroot/cacert.pem';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_CAINFO, realpath( $cacert ) );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,true );
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,2 );
$response = json_decode( curl_exec( $ch ), true );
$info = curl_getinfo( $ch );
curl_close( $ch );
echo '<pre>', print_r($info,1), PHP_EOL, print_r( $response, 1 ), '</pre>';
Других решений пока нет …