google maps api,提供的API密钥无效

时间:2013-11-01 12:18:58

标签: google-maps url geocoding

这是我第一次发布关于堆栈溢出的问题,真的希望你们能帮忙。

我第一次尝试使用谷歌地图地理编码api而无法让它工作。

我使用的网址格式为:

https://maps.googleapis.com/maps/api/geocode/json?address=LS2+9AQ&sensor=false&key= [MY_API_KEY]

在这种情况下,我正在查找英国邮政编码:来自Chrome浏览器的LS2 9AQ。

当我不使用我的api密钥时,网址确实有效,但没有密钥的允许通话数限制对我的需求来说太低了。

我还没有在生产网站上使用它,因为它现在是从我当地的dev开始运行的。

我得到的实际回应是:

[error_message] => The provided API key is invalid.
[results] => Array
    (
    )

    [status] => REQUEST_DENIED

当我删除api键时,它会起作用并返回以下内容:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "LS2 9AQ",
               "short_name" : "LS2 9AQ",
               "types" : [ "postal_code" ]
            },
            {
               "long_name" : "Woodhouse",
               "short_name" : "Woodhouse",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Leeds",
               "short_name" : "Leeds",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "West Yorkshire",
               "short_name" : "West York",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "United Kingdom",
               "short_name" : "GB",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "Leeds",
               "short_name" : "Leeds",
               "types" : [ "postal_town" ]
            }
         ],
         "formatted_address" : "Woodhouse, Leeds, West Yorkshire LS2 9AQ, UK",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 53.8090296,
                  "lng" : -1.5509549
               },
               "southwest" : {
                  "lat" : 53.8083045,
                  "lng" : -1.5519655
               }
            },
            "location" : {
               "lat" : 53.808447,
               "lng" : -1.5517752
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 53.81001603029149,
                  "lng" : -1.550111219708498
               },
               "southwest" : {
                  "lat" : 53.80731806970849,
                  "lng" : -1.552809180291502
               }
            }
         },
         "types" : [ "postal_code" ]
      }
   ],
   "status" : "OK"
}

我已经尝试用当前在我的作品网站上使用的url替换url并得到相同的响应,我尝试了两种不同的密钥,我自己生成了一个,一个是上周创建的,另一个是在一小时前创建的。我已按以下方式设置密钥:

  • 付款已启用且信用卡已附加到项目中(我被告知需要通过验证身份来增加对api的限制)
  • 在一个密钥引用者上设置为“dev.test.com/*”(这是我在本地开发人员上使用的URL)。在另一个键上没有指定引用者。
  • 密钥是浏览器应用密钥

我肯定正确地输入密钥,我和其他开发人员都多次检查过这个问题,有没有人对可能出错的问题有任何想法?

提前感谢任何有帮助的人。

更新 我发现问题导致进程在10次迭代后停止工作。谷歌地理编码api每秒限制10次呼叫,我正在考虑这个,我现在每10次迭代加1秒延迟,理论上我现在可以达到每日限制。

但是我仍然需要比默认免费限制更多的通话,如下面的评论中所述,我相信我可以使用api密钥来增加基于我拥有经过验证的帐户的免费限额。我正在使用这个用于商业,但它的数量不足以值得付出代价。任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

好的,如果不支付商业帐户,看起来我想做的事情是不可能的。无法将apikey应用于Google地理编码API。

我误解了一些关于google maps api的文档,其中提到了提高每日查询的允许限制。

这似乎不适用于地理编码api。

答案 1 :(得分:-1)

从您的示例中,您似乎试图对英国邮政编码进行地理定位。 您不需要谷歌API这样做,您可以下载英国邮政编码列表,将其放入数据库并使用谷歌作为后备选项。 我建议从这里下载https://www.doogal.co.uk/UKPostcodes.php