关注前端开发
关注用户体验

推荐一个免费7天天气预报API服务:和风天气 免费推荐

首先,这不是软文。

最近的一个项目中需要获取国内城市的7天内天气预报,说实话,目前的开源环境中仅存的天气预报API太少,找了许久才发现知乎里面提到的“和风天气”,或许你也曾遇到过这样的问题。

和风天气需要注册成为认证开发者才能获得免费7天天气预报的资格,注册还是很简单的,我这边申请的认证开发者一天就通过了。

和风天气认证开发者免费天气服务:

  • 国内3181+海外4000热门
  • 7天天气预报
  • 实况天气
  • 逐三小时预报
  • 生活指数(基础8项)
  • 空气质量实况(国控站点)
  • 每天访问量:14959次
  • 稳定性:99%
  • 技术支持:邮件

上面是开发者能够取得的API,有点功力的开发者就直接上手code了,因为文档还是很全的,而且都是json数据格式,还有提供各种天气情况图片(虽然不怎么地)。

值得注意的是免费API有访问限制,每天不得超过14959次(这个数字很奇葩,着实没有看出为什么不弄个整数)。

这也就意味着你需要做天气数据缓存,如果对天气实况要求不高的话,可以选择3个小时缓存一次API数据,这样可以大量减少对API接口的请求。至于如何做数据缓存,有很多种方式,比如:文件存储、数据库存储等等。

附上PHP实例:

function requestByKey(){
    //准备请求参数
    $key ="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
    $location = "北京";
    $curlPost = "key=".$key."&location=".urlencode($location);
    //初始化请求链接
    $req=curl_init();
    //设置请求链接
    curl_setopt($req, CURLOPT_URL,'https://free-api.heweather.com/s6/weather/now?'.$curlPost);
    //设置超时时长(秒)
    curl_setopt($req, CURLOPT_TIMEOUT,3);
    //设置链接时长
    curl_setopt($req, CURLOPT_CONNECTTIMEOUT,10);
    //设置头信息
    $headers=array( "Accept: application/json", "Content-Type: application/json;charset=utf-8" );
    curl_setopt($req, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($req, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($req, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($req, CURLOPT_SSL_VERIFYHOST, false);
    $data = curl_exec($req);
    curl_close($req);
    return $data;
}

扩展:如果你想让天气显示的高大上,可以借助百度echarts图标工具来美化和优化交互体验。

赞(225)
未经允许不得转载:大前端 » 推荐一个免费7天天气预报API服务:和风天气
分享到: 更多 (0)

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    这个比较实用。

    钓鱼大师7个月前 (03-30)回复

themebetter 国内更好的WordPress主题服务商

立即前往