我遇到了地图API的严重问题。
我正在向Geocoder做一个PHP curl请求
curl_setopt($curl, CURLOPT_URL, 'https://maps.googleapis.com/maps/api/geocode/json?key=my-key-goes-here&address='.urlencode($address).'&sensor=false®ion='.Session::Instance()->get('country'));
去年左右一切正常。从昨天起我就收到了这个错误:
{ "error_message" : "This site or IP is not authorized to use this API key.", "results" : [], "status" : "REQUEST_DENIED" }
对于我的Key for server applications
我有Any IP allowed
所以我不明白这个错误消息的原因。即使我更改它并允许我的服务器IP地址,我仍然会收到相同的错误消息。
当我重新生成密钥时,我收到错误“提供的API密钥已过期。”。它刚刚生成,它到期了怎么样?
此外,当我查看我的请求时,它说我使用了0%。我在帐户上设置了结算信息,但我从未向我们收取任何费用。
我很无能为力。任何建议将不胜感激。 我想到的唯一想法就是我的服务器已经被禁止了,因为我已经设置了账单,所以我不明白:(
当我从请求中删除key
时,我会收到“您已超出此API的每日请求配额”的消息。如何添加结算选项以便我的服务继续工作,我可以支付额外的请求?
由于
答案 0 :(得分:0)
基本的Google Maps API服务是免费的,无需密钥。并且非描述性错误消息“此站点或IP无权使用此API密钥”是有人在服务需要时使用密钥看到的内容。
如果您用完了配额,则可以获得一个商家帐户。请参阅:https://developers.google.com/maps/licensing
但是,您应该能够优化通话次数。 Google每日免费配额2500次呼叫基于每个IP地址。如果您正在使用PHP进行调用,则所有调用都来自您的服务器!尝试将API调用移动到客户端代码(例如,JavaScript)中。
Google发布了一篇关于如何优化服务器与客户端策略的非常好的文章。请参阅:https://developers.google.com/maps/articles/geocodestrat