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

这是来自百度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."\n\r"."当前温度:".$citytemp."\n\r"."天气情况:".$citytype."\n\r"."PM2.5值:".$citypm."\n\r风向风力:".$cityfengxiang." ".$cityfengli;
36                 $dateArray[] = array("Title"=>$cityname."\n\r".$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"]."\n\r气温:".$cityforecast[$i]["lowtemp"]."~".$cityforecast[$i]["hightemp"]."\n\r风力:".$cityforecast[$i]["fengxiang"]." ".$cityforecast[$i]["fengli"]."\n\r天气:".$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     }

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

时间: 2024-10-29 19:10:03

微信公众号天气查询接口实例的相关文章

微信公众号API测试——接口调用频率限制

接口频率限制[1] 公众号调用接口并不是无限制的.为了防止公众号的程序错误而引发微信服务器负载异常,默认情况下,每个公众号调用接口都不能超过一定限制,当超过一定限制时,调用对应接口会收到如下错误返回码: {"errcode":45009,"errmsg":"api freq out of limit"} 各接口调用频率限制如下: 接口 每日限额 获取access_token 2000 自定义菜单创建 1000 自定义菜单查询 10000 自定义菜

微信公众号开发API接口大全

在本文中,我们列出微信公众平台上可以使用的API接口以及举例如何在微信公众平台调用这些接口实现相应的功能. 接口调用说明: ① Appkey请使用的微信公众号,不要使用默认的trailuser ② 接口返回类型为文本.图文.及音乐三种基本消息 ③ 请在所有消息底部主动加上“技术支持 方倍工作室” ④ JSON验证网址 http://pro.jsonlint.com/ ⑤ 接口将不定期增加或更新,欢迎指出错误 ⑥ 如果有想要实现的,请在下面评论中列出并提供数据来源 ⑦ 提供的例子为天气.笑话.点歌

8 微信公众号--群发消息接口简略部署

在公众平台网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限.而对于某些具备开发能力的公众号运营者,可以通过高级群发接口,实现更灵活的群发能力. 这一部分有很多限制和注意事项,一定要仔细阅读开发文档.因为注意事项很多,这里就不一一列举说明了,只会提及代码功能涉及到的内容,而且,微信开发文档也是持续更新的,随时都在变化,我列举了意义也不大,不如随时查看最新文档~ 群发消息目录如下图: 我们不全都操作,只实践其中的一部分(根据标签进行群发.根据openID进行群发.删

.net微信公众号开发——基础接口

本文讲述微信公众号开发中基础接口的使用,包括以下内容:    (1)获取许可令牌(AccessToken):    (2)获取微信服务器地址:    (3)上传.下载多媒体文件:    (4)创建.显示二维码:    (5)长链接转短链接.    开源项目地址:http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount    本文的源代码地址:http://git.oschina.net/xrwang2/xrwang.weixin.Pub

微信公众号客服接口升级 支持第三方平台调用

客服接口今日又升级了,除了自定义客服头像和昵称外,也支持第三方平台代替公众号管理客服帐号和调用客服接口,需第三方平台接入公众号登录授权(在微信开放平台接入). 客服接口是公众号与用户进行客服回复的关键接口,今日客服接口进行了升级,增加了自定义头像和昵称的能力,帮助公众号以不同的客服身份服务不同用户. 该能力针对所有拥有客服接口权限的公众号开放(微信认证的订阅号和所有服务号,都拥有客服接口权限). 该能力具体表现是,开发者根据开发文档的要求,创建并设置客服帐号的头像和昵称后,微信用户(6.0.2版

微信公众号开发基本接口

1,接口配置填写服务器对接微信通知的接口地址及鉴权token 配置网页授权获取用户信息 域名mytest.com(用于网站获取用户基本信息) 2,服务器端实现 a,修改library/Curl.php扩展支持postjson格式数据 public function postjson($params = array(), $options = array()) { // If its an array (instead of a query string) then format it corre

微信公众号jssdk分享接口onMenuShareAppMessage自定义的参数无效,微信分享失败原因

使用jssdk为jweixin-1.4.0.js updateTimelineShareData,安全域名接口也设置正确,可就是分享,转发朋友圈不成功. 解决方案:采用<script src="https://res2.wx.qq.com/open/js/jweixin-1.2.0.js"></script>,wx.onMenuShareTimeline,wx.onMenuShareAppMessage就成功了.--------------------- 原文:

C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取

一.前言 当下微信公众号几乎已经是每个公司必备的,但是大部分微信公众账号用户体验都欠佳,特别是涉及到用户绑定等,需要用户进行复杂的操作才可以和网站绑定,或者很多公司直接不绑定,而是每次都让用户填写账号密码.作为微信接口开发人员我们知道网页授权可以用作微信网页用作安全登录,带参数二维码的使用用作记录用户来源,模板消息用作购物消费等消息的通知,但是很少看到有综合利用这些高级接口做出体验比较好的公众账号,这里分享一些我开发的用户绑定和验证码的一些心得.所需要的接口有基础的回复.网页授权.带参数二维码.

中科院JCR期刊分区微信公众号查询平台升级

赶在猴年第一天,我们升级了分区表微信公众号的查询平台,也是期望分区表能够在2016年有一个非常好的开始. 分区表微信公众号查询平台(以下称查询平台)是专为个人用户研发的,查询期刊分区的官方免费平台.关注官方微信公众号即可使用查询平台.如果您还没关注微信公众号,可扫描以下二维码,或者在微信中搜索(fenqubiao)立即关注. 新版查询平台主要分为6个模块:1 分区查询2 中国SCI期刊3 更名期刊4 镇压期刊5 单位账号查询6 查询历史 1 分区查询分区查询支持刊名/ISSN/关键词搜索期刊.还