首页 > 热点 > 微信 > 正文

微信公众号天气查询接口实例

2020-03-22 17:59:38
字体:
来源:转载
供稿:网友
  • 这是来自百度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.''.'当前温度:'.$citytemp.''.'天气情况:'.$citytype.''.'PM2.5值:'.$citypm.'风向风力:'.$cityfengxiang.' '.$cityfengli;36                 $dateArray[] = array('Title'=>$cityname.''.$citydate.' '.$cityweek,'Description'=>'','Picurl'=>'','Url' =>'');37                 $dateArray[] = array('Title'=>$out,'Description'=>'','Picurl'=>'','Url' =>'');38                 for($i=0;$i<count($cityforecast);$i++){39                     $outstr='? '.$cityforecast[$i]['date'].' '.$cityforecast[$i]['week'].'气温:'.$cityforecast[$i]['lowtemp'].'~'.$cityforecast[$i]['hightemp'].'风力:'.$cityforecast[$i]['fengxiang'].' '.$cityforecast[$i]['fengli'].'天气:'.$cityforecast[$i]['type'];40                     $dateArray[] = array('Title'=>$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     }

    查询格式:“天气 城市名”

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表