我使用谷歌天气API开发了一个天气应用程序,但从今天开始它停止工作。
当我尝试通过浏览器使用位置访问天气 API 时,它要求进行人工身份验证。
我的应用程序在这种情况下如何工作?有没有办法绕过身份验证过程?
这是非常奇怪的行为......我想知道它是否与当我尝试在 Chrome 中加载 API url 时传递的标头有关,不支持的 API ......或者如果我在 Firefox 中执行相同的 URL,工作得很好。
还值得注意的是,我尝试通过将以下两行放在单独的 Web 服务器的 apache 配置中并通过 www.domain.com/weather/api?weather=Chicago 引用 API 来设置 Google 天气服务的 Apache 代理,它仍然工作......所以这是我现在的解决方法:
ProxyPassReverse /weather/ http://www.google.com/ig/
ProxyPass /weather/ http://www.google.com/ig/
尝试更改域,例如:http ://www.google.ca/ig/api?weather=Sondrio 。它有效(现在:D)。
好像从现在开始就不用了
即使使用 .CA,它也会随机返回 Unsupported API。
遗憾
是的,有趣的是,如果请求缺少浏览器(使用 Chrome 和 Firefox 测试)包含在对非官方天气 URL 的请求中的 cookie,Google 似乎会发回随机的“不支持的 API”响应。
我通过复制在启用 Firebug 的“Net”选项卡的 Firefox 中运行请求时发现的整个“Cookie:”标头来修复我的应用程序。
不确定浏览器从 .google.com 上的哪个位置获取 cookie,我推测是使用像 gmail 这样的个性化服务。
如果您正在寻找可以立即使用的天气 API,我有一个建议……</p>
试试 Metwit Weather API,它是新的,但听起来很酷……<br> 这个 API 使用起来非常简单,因为它使用了当今可用的标准,例如 JSON 和 REST。
你可以使用这个新的 api 这与谷歌天气 api 具有相同的 xml 结构
http://en.previmeteo.com/professionals/google-weather-api.php