手机版

微信公众平台天气预报功能开发

时间:2021-09-10 来源:互联网 编辑:宝哥软件园 浏览:

本来想直接从中国天气网获取信息并进行处理。后来发现处理起来太麻烦了,要拿到所有城市的城市代码,然后就有了!不支持国外天气!我们学校出国留学的毕业生很多,所以我考虑做一个支持国外天气的版本。

所以考虑直接调用别人的API,我选择了方北工作室已经做好的接口(但是没有国外)。直到有一天回到北京,气温零下(当时太热了,不能出门)。改变!改变!改变!

终于找到了最靠谱的界面——百度的天气API。

废话少说,首先大家要在百度地图API上申请一个专用键(大概一分钟就可以搞定,非常方便)。代码如下:

//天气的图文信息2【这是微信的图文信息模板】$tqTpl='xmlToUserName![CData[% s]]/TouseNameFromUserName![CData[% s]]/from usernamecreatetime % s/CreateTimeMsgType![CDATA[% s]/msgttypearticlecount 5/articlecounterarticlesitetitle![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/ItemItem![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/ItemItem![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/ItemItem![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/ItemItem![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/ItemItem![CData[% s]]/标题描述![CDATA[%s]]/DescriptionPicUrl![CDATA[%s]]/PicUrlUrl![CData[% s]]/URl/项目/文章/XML ';//最后发现最多只能看到五项===无语。PHP代码

if(substr _ count($关键字,)天气')!=0 $关键字!='天气){ $舒歌=substr _ count($关键字,'天气');$t=爆炸('天气、$关键字);对于($ I=0;$ i=$舒歌;$i ) { if($t[$i]!=' '){ $ city=$ t[$ I];打破;} } $mykey='【这里换成你的【原料药键】';$ URL='http://api.map.baidu.com/telematics/v3/weather?位置='。$城市输出=jsonak=' .$ mykey $ output=file _ get _ contents($ URL);$ ContentStr=JSON _ decode($ output,true);if($ content str[' status ']==' success '){ $ T[0][' Title ']=$ content str[' date '].' '.$ ContentStr[' results '][0][' CurrentCity '].'天气;//$ T[0][' PiCurl ']=' http://Zhang airen-try 2。斯托。新浪app。com/xytq。jpg ';//$ T[0][' URl ']=' http://zhi airen-try 2。斯托。新浪app。com/xytq。jpg ';//上面两行可以设成你想要的顶部图片if(is _ array($ content str[' results '][0][' index ']){ $ T[2][' Title ']='【pm 2.5】').$ ContentStr[' results '][0][' pm25 '].\n .【'.$ ContentStr[' results '][0][' index '][0][' title ']。】'.'('.$ ContentStr[' results '][0][' index '][0][' zs ']。) '.$ ContentStr[' results '][0][' index '][0][' des '];//下一行是洗车指数,感觉不对主题还是不要的好/$T[2]["标题"]=$T[2]["标题"]。\n .【'.$ ContentStr[' results '][0][' index '][1][' title ']。】('.$ ContentStr[' results '][0][' index '][1][' zs ']。) '.$ ContentStr[' results '][0][' index '][1][' des '];$T[2]['Title']=$T[2]['Title'].\n .【'.$ ContentStr[' results '][0][' index '][2][' title ']。】('.$ ContentStr[' results '][0][' index '][2][' zs ']。) '.$ ContentStr[' results '][0][' index '][2][' des '];} else $ gu wai=1;对于($i=1,$ AAA=0;$ I=5;$ I){ if($ I==2 $ gu wai!=1)继续;if($ gu wai==1 $ I==5)继续;$ T[$ I][' Title ']=$ content str[' results '][0][' weather _ data '][$ AAA][' date ']”。$contentStr['结果'][0]['天气_数据][$aaa]['温度']。'。$ ContentStr[' results '][0][' weather _ data '][$ AAA][' weather ']。$ ContentStr[' results '][0][' weather _ data '][$ AAA][' wind '];$ T[$ I][' PicUrl ']=$ content str[' results '][0][' weather _ data '][$ AAA][' dayPictureUrl '];$ T[$ I][' URl ']=$ ContentStr[' results '][0][' weather _ data '][$ AAA][' DayPictureURl '];$ aaa} $天齐=sprintf($tqTpl,$fromUsername,$ toUsername,time(),' news ',$T[0]['Title'],$T[0]['Description'],$T[0]['PicUrl'],$T[0]['Url'],$T[1]['Title'],$T[1]['PicUrl'],$T[1]['Url'],$ T[2][' Title ']回显$天齐;} }效果图如下:

将其中的$mykey变量改成自己的APIkey就行了。另外有一点让我不解的是,我微信用的图文模板明明是6个项目,为什么回复实际效果只有5个呢==求广大网友帮忙解释

最后附代码说明。用户发送"北京天气"和"天气北京"都是可以的,所以首先做了字符串处理,得到正确的城市名。利用百度地图应用程序接口给的网址,发出得到请求(其实就是直接访问),获取一个json类型的数据包。将数据包信息转成数组格式,对应的回复微信用户即可。国外的天气没有当天天气的具体说明,所以最后做了一点小修改。

版权声明:微信公众平台天气预报功能开发是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。