我试图通过以下方式访问谷歌的地理编码应用编程接口:
Curlhttps://maps.googleapis.com/maps/api/geocode/json?address=1600圆形剧场大道, Mountain View, CA
我得到以下结果:
{“error_message”:您必须使用API密钥对Google Maps平台API的每个请求进行身份验证。有关更多信息,请参阅http://g.co/dev/maps-no-account“,“结果”:[],“状态”:“请求被拒绝”}
我正在传递的密钥与启用地理编码和位置应用编程接口的项目相关联,并且该项目也启用了计费。
我认为shell干扰了您查询中的一些字符。如果使用bash或类似的shell,我可以用单引号或双引号将查询地址括起来。例如:
curl 'https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=XXX'
{
"results" : [
{
"address_components" : [
{
"long_name" : "1600",
"short_name" : "1600",
"types" : [ "street_number" ]
...
为了更加方便,您可以将键存储在shell环境变量中,并在查询中使用双引号对shell进行扩展。以下是我的工作:
export GOOGLE_MAPS_API_KEY=XXX
curl "https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=${GOOGLE_MAPS_API_KEY}"