Java 利用雅虎API 采集天气情况

/ 0评 / 0

    是这样的-为了业务需求,产品要求在某页加上天气信息,且根据日落日出时间来提醒行程时间在日落后的人打开车灯。由于业务都在国外,像国家气象中心就凉了,产品极力推荐使用Yahoo Weather。然后折腾了一整日大概摸清了Yahoo的Weather API。

    Yahoo的公共接口实行YSQL的办法,让天气数据可像SQL一样查询。而目前还存活的表为 :geo.places 和weather.forecast。在这之前还有好多表,但出于一些不为人知的原因,雅虎停用了这些表和非常好用的YSQL Console。比如通过经纬度查询Woeid,就会出现需要Api_key的状况,而雅虎则是更新到Oath2.0验证,让你调用也要通过AK来走,而获取动态token的过程又是请求url的,又是拿码办事的,在实际开发直接拉天气(其实是我不会写Java SSL怎么处理)。在这种大环境下只能通过以下的办法来实现:

    其中也没什么值得注意的地方,而其API因为查询是YSQL的形式出现,多了几个参数:比如placetype。placetype是返回的数据当中的一个key。他写作是placetypeName。而我们普通的城市一般是作为Town出现,当然地级市有Admin的形式,也有State这种,比如日本还有道,县。在上面我为了提高精确度稍微限制了一下,而请求的值也是城市名加国家的办法,除此之外也可以通过经纬度 就是以(api_key,lon,lat)的形式出现在Where语句当中,当前测试可用的网址还有:

       以上是通过地名直接获取天气和通过woeid获取天气,是最为常用的两种办法。而Yahoo官方本身所提供的API文档和开发者中心(用处不大)当中好多数据都已经废弃,而且部分URL不可用,也不知道这两个能做到什么时候-


发表评论

电子邮件地址不会被公开。 必填项已用*标注