Maison > php教程 > php手册 > 微信公众号天气查询接口实例 - 国盛工作室

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2016-05-20 11:54:00
original
1567 Les gens l'ont consulté

这是来自百度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>
Copier après la connexion

我将这个天气查询的功能集成在了微信公众平台上,支持未来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-><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"=><span style="color: #800080;">$cityname."\n\r".<span style="color: #800080;">$citydate." ".<span style="color: #800080;">$cityweek,"Description"=>"","Picurl"=>"","Url" =>""<span style="color: #000000;">);
<span style="color: #008080;">37                 <span style="color: #800080;">$dateArray[] = <span style="color: #0000ff;">array("Title"=><span style="color: #800080;">$out,"Description"=>"","Picurl"=>"","Url" =>""<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"=><span style="color: #800080;">$outstr,"Description"=>"","Picurl"=>"","Url" =>""<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->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"=>"查询格式错误","Description"=>"","Picurl"=>"","Url" =>"");
49                 $dateArray[] = array("Title"=>"正确格式例:天气 北京","Description"=>"","Picurl"=>"","Url" =>"");
50                 $resultStr = $this->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>
Copier après la connexion

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

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal