您的位置:首页 > 移动开发 > 微信开发

微信公众平台开发4:天气预报

2016-09-30 17:41 323 查看
思路首先要对用户发送过来的消息进行判断,判断消息里是否含有“天气”关键字,如果含有,则需要继续提取地区信息,然后再通过中国天气网(http://www.weather.com.cn)提供的开放API进行查询。实时天气信息API:http://www.weather.com.cn/data/sk/101110101.html

关键字判断与地区读取

用户发送过来查询天气的消息格式是固定好的,即 “地区+天气”,所以首先截取后两个字,判断是否为 “天气” 关键字。我们使用php的 mb_substr()函数截取:
$str=mb_substr($keyword,-2,2,"UTF-8");
从消息的结尾第二个字符开始截取,截取两个字符,然后加以判断是否为 “天气” 关键字。下面进行地区提取,还是使用 mb_substr() 函数。
$str_key=mb_substr($keyword,0,-2,"UTF-8");
从消息的开头开始,截掉末尾的两个字符(天气),得地区关键字。
if($str=='天气'&&!empty($str_key)){//调用函数查询天气}

调用函数查询天气

接口地址:http://www.weather.com.cn/data/sk/101110101.html其中URL中的数字指代城市的编号101190401(苏州)。 返回信息格式如下:
{"weatherinfo":{"city":"西安","cityid":"101110101","temp":"24","WD":"东南风","WS":"2级","SD":"62%","WSE":"2","time":"21:00","isRadar":"1","Radar":"JC_RADAR_AZ9290_JB"}}
其中:cityid为城市编码,temp为当前温度WD //风向WS //风力SD//相对湿度WSE //风力isRadar "1"//是否有雷达图Radar "JC_RADAR_AZ9010_JB"//雷达图地址 http://www.weather.com.cn/html/radar/JC_RADAR_AZ9010_JB.shtml 现在地址更新成: http://products.weather.com.cn/product/radar/index/procode/JC_RADAR_AZ9736_JB 了我们通过解析JSON,获取相应城市的天气数据。weather() 函数如下:
这里include 了一个城市对应关系文件 weather_cityId.php,格式如下:
<?php$weather_cityId=array("北京"=>"101010100","上海"=>"101020100","苏州"=>"101190401");?>
根据传入的城市名,得到城市代码

效果:欢迎关注我的公众号:

艺搜参考

网上的天气 API 哪一个更加可靠?http://z3sm2012.iteye.com/blog/1880973http://www.cnblogs.com/mchina/p/3170551.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: