网站推广.NET

网站推广.NET

微信公众号天气查询接口实例 - 国盛工作室

来源:互联网

这是来自百度api的一个天气查询的接口,支持历史7天和未来4天的天气情况查询,接口不错,分享给大家。

接口申请地址:http://apistore.baidu.com/apiworks/servicedetail/112.html

首先,获取一下apikey(貌似需要手机验证码认证下)

我调用的是历史7天和未来4天的接口,接口地址是:

http:<span style="color: #008000;">//</span><span style="color: #008000;">apis.baidu.com/apistore/weatherservice/recentweathers</span>

我将这个天气查询的功能集成在了微信公众平台上,支持未来4天天气查询,包括:当前温度、pm值、风向、风力、最高温度、最低温度、天气状态的查询,效果如下:

闲话不多说,我就喜欢来点直接的,核心代码如下:

<span style="color: #008080;"> 1 <span style="color: #008000;">//<span style="color: #008000;">接收到文本信息<span style="color: #008080;"> 2     <span style="color: #0000ff;">private <span style="color: #0000ff;">function receiveText(<span style="color: #800080;">$object<span style="color: #000000;">){<span style="color: #008080;"> 3         <span style="color: #008000;">//<span style="color: #008000;">多个空格缩为一个<span style="color: #008080;"> 4         <span style="color: #800080;">$keyword = <span style="color: #800080;">$object-&gt;<span style="color: #000000;">Content;<span style="color: #008080;"> 5         <span style="color: #800080;">$keyword=<span style="color: #008080;">preg_replace("/\s(?=\s)/","\\1",<span style="color: #800080;">$keyword<span style="color: #000000;">);<span style="color: #008080;"> 6         <span style="color: #800080;">$funcFlag = 0<span style="color: #000000;">;<span style="color: #008080;"> 7         <span style="color: #0000ff;">if(<span style="color: #008080;">strpos(<span style="color: #800080;">$keyword," "<span style="color: #000000;">)){<span style="color: #008080;"> 8             <span style="color: #008000;">//<span style="color: #008000;">echo '有空格';<span style="color: #008080;"> 9             <span style="color: #800080;">$arr = <span style="color: #008080;">explode(" ",<span style="color: #800080;">$keyword<span style="color: #000000;">);<span style="color: #008080;">10             <span style="color: #0000ff;">if(<span style="color: #800080;">$arr[0]=="天气"<span style="color: #000000;">){<span style="color: #008080;">11                 <span style="color: #800080;">$dateArray = <span style="color: #0000ff;">array<span style="color: #000000;">();<span style="color: #008080;">12                 <span style="color: #800080;">$ch =<span style="color: #000000;"> curl_init();<span style="color: #008080;">13                 <span style="color: #800080;">$city=<span style="color: #008080;">urlencode(<span style="color: #800080;">$arr[1<span style="color: #000000;">]);<span style="color: #008080;">14                 <span style="color: #800080;">$url = 'http://apis.baidu.com/apistore/weatherservice/recentweathers?cityname='.<span style="color: #800080;">$city<span style="color: #000000;">;<span style="color: #008080;">15                 <span style="color: #800080;">$header = <span style="color: #0000ff;">array<span style="color: #000000;">(<span style="color: #008080;">16                     'apikey: 6512ad3a465e3a9e3d0d1da56639626c',<span style="color: #008080;">17 <span style="color: #000000;">                );<span style="color: #008080;">18                 curl_setopt(<span style="color: #800080;">$ch, CURLOPT_HTTPHEADER  , <span style="color: #800080;">$header<span style="color: #000000;">);<span style="color: #008080;">19                 curl_setopt(<span style="color: #800080;">$ch, CURLOPT_RETURNTRANSFER, 1<span style="color: #000000;">);<span style="color: #008080;">20                 curl_setopt(<span style="color: #800080;">$ch , CURLOPT_URL , <span style="color: #800080;">$url<span style="color: #000000;">);<span style="color: #008080;">21                 <span style="color: #800080;">$res = curl_exec(<span style="color: #800080;">$ch<span style="color: #000000;">);<span style="color: #008080;">22                 <span style="color: #800080;">$data = json_decode(<span style="color: #800080;">$res,<span style="color: #0000ff;">true<span style="color: #000000;">);<span style="color: #008080;">23                 <span style="color: #800080;">$cityname=<span style="color: #800080;">$data['retData']['city'<span style="color: #000000;">];<span style="color: #008080;">24                 <span style="color: #800080;">$citydate=<span style="color: #800080;">$data['retData']['today']['date'<span style="color: #000000;">];<span style="color: #008080;">25                 <span style="color: #800080;">$cityweek=<span style="color: #800080;">$data['retData']['today']['week'<span style="color: #000000;">];<span style="color: #008080;">26                 <span style="color: #800080;">$citytemp=<span style="color: #800080;">$data['retData']['today']['curTemp'<span style="color: #000000;">];<span style="color: #008080;">27                 <span style="color: #800080;">$citypm=<span style="color: #800080;">$data['retData']['today']['aqi'<span style="color: #000000;">];<span style="color: #008080;">28                 <span style="color: #800080;">$cityhightemp=<span style="color: #800080;">$data['retData']['today']['hightemp'<span style="color: #000000;">];<span style="color: #008080;">29                 <span style="color: #800080;">$citylowtemp=<span style="color: #800080;">$data['retData']['today']['lowtemp'<span style="color: #000000;">];<span style="color: #008080;">30                 <span style="color: #800080;">$citytype=<span style="color: #800080;">$data['retData']['today']['type'<span style="color: #000000;">];<span style="color: #008080;">31                 <span style="color: #800080;">$cityfengli=<span style="color: #800080;">$data['retData']['today']['fengli'<span style="color: #000000;">];<span style="color: #008080;">32                 <span style="color: #800080;">$cityfengxiang=<span style="color: #800080;">$data['retData']['today']['fengxiang'<span style="color: #000000;">];<span style="color: #008080;">33                 <span style="color: #800080;">$cityforecast=<span style="color: #800080;">$data['retData']['forecast'<span style="color: #000000;">];<span style="color: #008080;">34 <span style="color: #008080;">35                 <span style="color: #800080;">$out="今日温度:".<span style="color: #800080;">$citylowtemp."~".<span style="color: #800080;">$cityhightemp."\n\r"."当前温度:".<span style="color: #800080;">$citytemp."\n\r"."天气情况:".<span style="color: #800080;">$citytype."\n\r"."PM2.5值:".<span style="color: #800080;">$citypm."\n\r风向风力:".<span style="color: #800080;">$cityfengxiang." ".<span style="color: #800080;">$cityfengli<span style="color: #000000;">;<span style="color: #008080;">36                 <span style="color: #800080;">$dateArray[] = <span style="color: #0000ff;">array("Title"=&gt;<span style="color: #800080;">$cityname."\n\r".<span style="color: #800080;">$citydate." ".<span style="color: #800080;">$cityweek,"Description"=&gt;"","Picurl"=&gt;"","Url" =&gt;""<span style="color: #000000;">);<span style="color: #008080;">37                 <span style="color: #800080;">$dateArray[] = <span style="color: #0000ff;">array("Title"=&gt;<span style="color: #800080;">$out,"Description"=&gt;"","Picurl"=&gt;"","Url" =&gt;""<span style="color: #000000;">);<span style="color: #008080;">38                 <span style="color: #0000ff;">for(<span style="color: #800080;">$i=0;<span style="color: #800080;">$icount(<span style="color: #800080;">$cityforecast);<span style="color: #800080;">$i++<span style="color: #000000;">){<span style="color: #008080;">39                     <span style="color: #800080;">$outstr="☀ ".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["date"]." ".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["week"]."\n\r气温:".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["lowtemp"]."~".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["hightemp"]."\n\r风力:".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["fengxiang"]." ".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["fengli"]."\n\r天气:".<span style="color: #800080;">$cityforecast[<span style="color: #800080;">$i]["type"<span style="color: #000000;">];<span style="color: #008080;">40                     <span style="color: #800080;">$dateArray[] = <span style="color: #0000ff;">array("Title"=&gt;<span style="color: #800080;">$outstr,"Description"=&gt;"","Picurl"=&gt;"","Url" =&gt;""<span style="color: #000000;">);<span style="color: #008080;">41 <span style="color: #000000;">                }<span style="color: #008080;">42                 <span style="color: #800080;">$resultStr = <span style="color: #800080;">$this-&gt;transmitNews(<span style="color: #800080;">$object, <span style="color: #800080;">$dateArray, <span style="color: #800080;">$funcFlag<span style="color: #000000;">);<span style="color: #008080;">43 <span style="color: #000000;">            }<span style="color: #008080;">44         }<span style="color: #0000ff;">else<span style="color: #000000;">{<span style="color: #008080;">45             <span style="color: #008000;">//<span style="color: #008000;">echo '没有空格';<span style="color: #008080;">46             if($keyword=="天气"){47                 $dateArray = array();48                 $dateArray[] = array("Title"=&gt;"查询格式错误","Description"=&gt;"","Picurl"=&gt;"","Url" =&gt;"");49                 $dateArray[] = array("Title"=&gt;"正确格式例:天气 北京","Description"=&gt;"","Picurl"=&gt;"","Url" =&gt;"");50                 $resultStr = $this-&gt;transmitNews($object, $dateArray, $funcFlag);51             }52         }53         return $resultStr; 54     }</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

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

标签: apistore