Google 地图地理编码 API 当 API 键给出 returns REQUEST_DENIED

Google Map Geocode API when API key given returns REQUEST_DENIED

当我删除 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

首先必须通过 https 发送 api 请求,然后您会发现密钥已过期。

$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>';