微信公众号天气查询接口实例,公众天气查询实例这是来自百度api的一个天气查询的接口,支持历史7天和未来4天的天气情况查询,接口不错,分享给大家。
接口申请地址:http://apistore.baidu.com/apiworks/servicedetail/112.html
首先,获取一下apikey(貌似需要手机验证码认证下)
我调用的是历史7天和未来4天的接口,接口地址是:
http://apis.baidu.com/apistore/weatherservice/recentweathers
我将这个天气查询的功能集成在了微信公众平台上,支持未来4天天气查询,包括:当前温度、pm值、风向、风力、最高温度、最低温度、天气状态的查询,效果如下:
闲话不多说,我就喜欢来点直接的,核心代码如下:
1 //接收到文本信息 2 private function receivetext($object){ 3 //多个空格缩为一个 4 $keyword = $object->content; 5 $keyword=preg_replace(/\s(?=\s)/,\\1,$keyword); 6 $funcflag = 0; 7 if(strpos($keyword, )){ 8 //echo '有空格'; 9 $arr = explode( ,$keyword);10 if($arr[0]==天气){11 $datearray = array();12 $ch = curl_init();13 $city=urlencode($arr[1]);14 $url = 'http://apis.baidu.com/apistore/weatherservice/recentweathers?cityname='.$city;15 $header = array(16 'apikey: 6512ad3a465e3a9e3d0d1da56639626c',17 );18 curl_setopt($ch, curlopt_httpheader , $header);19 curl_setopt($ch, curlopt_returntransfer, 1);20 curl_setopt($ch , curlopt_url , $url);21 $res = curl_exec($ch);22 $data = json_decode($res,true);23 $cityname=$data['retdata']['city'];24 $citydate=$data['retdata']['today']['date'];25 $cityweek=$data['retdata']['today']['week'];26 $citytemp=$data['retdata']['today']['curtemp'];27 $citypm=$data['retdata']['today']['aqi'];28 $cityhightemp=$data['retdata']['today']['hightemp'];29 $citylowtemp=$data['retdata']['today']['lowtemp'];30 $citytype=$data['retdata']['today']['type'];31 $cityfengli=$data['retdata']['today']['fengli'];32 $cityfengxiang=$data['retdata']['today']['fengxiang'];33 $cityforecast=$data['retdata']['forecast'];34 35 $out=今日温度:.$citylowtemp.~.$cityhightemp.\n\r.当前温度:.$citytemp.\n\r.天气情况:.$citytype.\n\r.pm2.5值:.$citypm.\n\r风向风力:.$cityfengxiang. .$cityfengli;36 $datearray[] = array(title=>$cityname.\n\r.$citydate. .$cityweek,description=>,picurl=>,url =>);37 $datearray[] = array(title=>$out,description=>,picurl=>,url =>);38 for($i=0;$i$outstr,description=>,picurl=>,url =>);41 }42 $resultstr = $this->transmitnews($object, $datearray, $funcflag);43 }44 }else{45 //echo '没有空格';46 if($keyword==天气){47 $datearray = array();48 $datearray[] = array(title=>查询格式错误,description=>,picurl=>,url =>);49 $datearray[] = array(title=>正确格式例:天气 北京,description=>,picurl=>,url =>);50 $resultstr = $this->transmitnews($object, $datearray, $funcflag);51 }52 }53 return $resultstr; 54 }
查询格式:“天气 城市名”
http://www.bkjia.com/phpjc/1119056.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/1119056.htmltecharticle微信公众号天气查询接口实例,公众天气查询实例 这是来自百度api的一个天气查询的接口,支持历史7天和未来4天的天气情况查询,接口不...