【问题标题】:Am i using the API V2 or V3 in this piece of code?我在这段代码中使用的是 API V2 还是 V3?
【发布时间】:2013-10-25 16:33:44
【问题描述】:

我的 live、staging 和 localhost 有一个页面,其中有一个地图和商店查找器。

6 个月后,这现在不起作用并且没有触及代码。我已经更新了我的 API 密钥,但仍然没有运气。现在我知道 API V2 现在没有使用,我想知道我是否使用了错误的代码(我自己很困惑)。在我的商店查找器中,我有这个网址:

$url = "http://maps.google.co.uk/maps/geo?q=".urlencode($this->input->post('postcode'))."&output=json&key=MYKEY";

现在阅读此页面 (https://developers.google.com/maps/documentation/geocoding/#JSON) 这已经改变,但我似乎无法获得有效的网址!

我得到的错误是:Message: file_get_contents(http://maps.google.co.uk/maps/geo?q=sr3+4as&output=json&key=MYKEY): failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden

当我在谷歌中输入 url 字符串时,我会收到以下消息:

We're sorry...

... but your computer or network may be sending automated queries. To protect our users, we can't process your request right now.

如果有人可以指导我判断我的 url 字符串是不是上面的错误,或者这是另一个问题,我将不胜感激。

谢谢!

【问题讨论】:

  • “Google 地理编码 API 有以下限制:每天 2,500 个请求。”。你超过这个了吗? “如果您超过 24 小时限制或以其他方式滥用服务,Geocoding API 可能会暂时停止为您工作。如果您继续超过此限制,您对 Geocoding API 的访问可能会被阻止。”。 Google 可能已阻止来自您的服务器的访问 - 如果您在自己的浏览器中尝试相同的 URL,它会起作用吗?
  • 我检查了我的访问,它根本不在这附近,那就是该网站是一个微型网站,目前几乎没有任何访问者。 :(

标签: php google-maps-api-3 error-handling


【解决方案1】:

根据the upgrade guide这个端点URL: http://maps.google.co.uk/maps/geo

正在使用 v2 地理编码 API。

从 v2 切换的开发人员可能使用的是旧主机名 — maps.google.com 或 maps-api-ssl.google.com,如果 使用 SSL。您应该迁移到新的主机名:maps.googleapis.com。

这个基于更新指南中信息的 URL 对我有用:

http://maps.googleapis.com/maps/api/geocode/json?address=nebraska&sensor=false

【讨论】:

  • 感谢您的评论,我已经阅读了此更新,但它仍然在抛出错误,我一定是在这里遗漏了一些如此简单的东西,上面我将提供我更新的 URL 的编辑到。
  • 从上面的编辑中,密钥和 .urlencode($this->input->post('postcode')) 将如何。适合?我认为这是我缺少某些东西的地方。很抱歉很痛苦。
  • 阅读文档。 v3 中没有关键参数。您需要对地址参数进行 url 编码。
猜你喜欢
  • 2022-10-08
  • 2011-05-18
  • 2011-05-07
  • 2015-10-23
  • 2023-03-29
  • 2013-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多