这是我第一次发布关于堆栈溢出的问题,真的希望你们能提供帮助。
我第一次尝试使用谷歌地图地理编码 API,但无法正常工作。
我使用的网址格式是:
https://maps.googleapis.com/maps/api/geocode/json?address=LS2+9AQ&sensor=false&key=[MY_API_KEY]
在这种情况下,我正在从 chrome 浏览器查找英国邮政编码:LS2 9AQ。
当我不使用我的 api 密钥时,该 url 确实有效,但是没有密钥的允许调用数量的限制对于我的需要来说太低了。
我还没有在生产站点中使用它,现在它是从我的本地开发人员用 chrome 运行的。
我得到的实际回应是:
[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/*”(这是我在本地开发人员上为此使用的网址)。在另一个键上没有指定引用者。
- 密钥是浏览器应用程序密钥
我肯定正确输入了密钥,我和另一个开发人员都检查了多次,有没有人对可能出现的问题有任何想法?
提前感谢任何有帮助的人。
更新 我发现了导致进程在 10 次迭代后停止工作的问题。谷歌地理编码 api 有每秒 10 次调用的限制,我正在处理这个问题,我现在每 10 次迭代添加 1 秒延迟,理论上我现在可以达到每日限制。
但是,我仍然需要比默认免费限制更多的电话,正如我在下面的评论中所述,我相信我可以使用 api 密钥来增加基于我拥有经过验证的帐户的免费限制。我将其用于业务,但数量不够大,不值得为此付费。任何人都可以帮我解决这个问题吗?