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


    这是来自百度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     }

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

  • 相关阅读:
    ACM题目————STL练习之求次数
    ACM题目————STL + 全排列
    ACM题目———— 一种排序(STL之set)
    ACM第二站————STL之stack
    ACM题目————中位数
    ACM题目————Sunscreen
    ACM题目————区间覆盖问题
    ACM题目————困难的串
    ACM题目————A Knight's Journey
    ACM题目————Face The Right Way
  • 原文地址:https://www.cnblogs.com/codeit/p/5383157.html
Copyright © 2020-2023  润新知