检测Google Maps API配额限制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测Google Maps API配额限制相关的知识,希望对你有一定的参考价值。

如果达到Google Maps javascript API V3的配额,有没有人知道通过Javascript或HTTP-Request进行测试的方法?获取为用户显示的错误消息就足够了。

我们启用了结算并为Google Maps Javascript API v3配置了大约100,000的配额,但有时我们会将其分解,有时甚至无法实现。现在我们喜欢使用像nagios这样的工具监控我们的api访问(也许通过使用phantomjs)来获得即时警告。但是,如果我们的配额超出,我找不到任何关于如何测试的信息。

UPDATE2

类似的请求在这里找到:How to detect that the 25000 request per day limit has been reached in Google Maps?

但是只有对API-Console的引用。如果有人设法使用Javascript回退静态地图,我可以修改我的案例的脚本。

更新

以下是谷歌地图的本地化配额错误消息示例,该消息是为用户而不是地图显示的。如果发生这种情况,我宁愿删除maps容器:

答案

我假设您想知道您是否超出了Google Maps API Web服务请求限制。以下是官方文档所说的内容:

超出使用限制

如果超出使用限制,您将获得OVER_QUERY_LIMIT状态代码作为响应。

这意味着Web服务将停止提供正常响应并切换到仅返回状态代码OVER_QUERY_LIMIT,直到再次允许更多使用。这可能发生:

  • 在几秒钟内,如果收到错误,因为您的应用程序每秒发送的请求过多。
  • 如果因为您的应用程序每天发送的请求过多而收到错误,则在接下来的24小时内会有一段时间。一天中的时间 重置服务的每日配额因客户和每个API而异,并且可能随时间而变化。

收到状态代码为OVER_QUERY_LIMIT的响应后,您的应用程序应确定已超出哪个使用限制。这可以通过暂停2秒并重新发送相同的请求来完成。如果状态代码仍为OVER_QUERY_LIMIT,则您的应用程序每天发送的请求过多。否则,您的应用程序每秒发送的请求过多。

一个代码示例:

url = "MAPS_API_WEBSERVICE_URL"
attempts = 0
success = False

while success != True and attempts < 3:
  raw_result = urllib.urlopen(url).read()
  attempts += 1
  # The GetStatus function parses the answer and returns the status code
  # This function is out of the scope of this example (you can use a SDK).
  status = GetStatus(raw_result)
  if status == "OVER_QUERY_LIMIT":
    time.sleep(2)
    # retry
    continue
  success = True

if attempts == 3:
  # send an alert as this means that the daily limit has been reached
  print "Daily limit has been reached"

来自Google Maps文档的引用:qazxsw poi

TLDR:发出请求,如果收到OVER_QUERY_LIMIT响应,请在两秒钟后重试。如果响应仍然相同,那么您已达到每日限额。

另一答案

我提出了一个基于观察结果的解决方案,即Google错误消息包含具有https://developers.google.com/maps/documentation/business/articles/usage_limits#limitexceeded类属性的元素。使用jQuery,就像是

dismissButton

以上是关于检测Google Maps API配额限制的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps API 3 - 限制平移/地图边界

Google静态地图api与密钥和无密钥之间的区别?

Google Analytics 4 Bigquery 链接的配额限制是多少

Google Maps Geocoding API 使用限制

Google Maps API [Directions API] 航点限制?

Android Google Maps Direction Api - Api 密钥限制不起作用