我刚刚注册了Google Places API
。他们在我的代码中向我发送了server key
。
这是我的代码:
function getLatLon($address)
{
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,'https://maps.googleapis.com/maps/api/geocode/json?address='.rawurlencode($address));
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$json=curl_exec($curl);
curl_close($curl);
$json=json_decode($json);
$details=[
'lat'=>$json->results[0]->geometry->location->lat,
'lng'=>$json->results[0]->geometry->location->lng
];
return $details;
}
function getDetails($address)
{
$apikey='googlesuppliedapikey';
$locdetails=getLatLon($address);
$latitude=$locdetails['lat'];
$longitude=$locdetails['lng'];
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=$latitude,$longitude&key=$apikey');
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$json=curl_exec($curl);
curl_close($curl);
$json=json_decode($json);
print_r($json);
}
$address='3342 Shawnee Avenue Avenue West Palm Beach, FL 33409';
getDetails($address);
纬度和经度功能正常。我的问题在getDetails function
内。
我目前的回复是以下
stdClass Object
(
[error_message] => The provided API key is invalid.
[html_attributions] => Array
(
)
[results] => Array
(
)
[status] => REQUEST_DENIED
)
不太确定问题是什么。我确实刚刚在5分钟前创建了这个API密钥。 我也尝试过我昨天创建的先前密钥,它提供了相同的答案
无论如何,谢谢你的帮助。
答案 0 :(得分:0)
您的请求网址不正确。
放置详细信息请求
地方详情请求是以下格式的HTTP网址:
https://maps.googleapis.com/maps/api/place/details/output?parameters 其中输出可以是以下值之一:
json (推荐)表示JavaScript Object Notation(JSON)中的输出 xml表示输出为XML 启动搜索请求需要某些参数。作为URL中的标准,所有参数都使用&符号(&)分隔。以下是参数列表及其可能的值。
密钥(必填) - 您应用程序的API密钥。此密钥用于标识您的应用程序以进行配额管理,以便从您的应用程序添加的位置立即可供您的应用程序使用。访问Google Developers Console以创建API项目并获取您的密钥。 placeid 或引用(您必须提供其中一个,但不能同时提供): placeid - 从地方搜索返回的唯一标识地点的文本标识符。有关地点ID的详细信息,请参阅地点ID概述。 reference - 从地方搜索返回的唯一标识地点的文本标识符。注意:现在不推荐使用该引用而使用placeid。请参阅此页面上的弃用通知。