之前有同学问怎么通过接收API来回复微信多图文消息,下面就是一个演示,利用天行数据的微信精选API接口,动态回复多图文微信精选消息。
接口地址:http://api.huceo.com
支持格式:JSON/XML 请求方式:HTTP GET/POST
请求示例:http://api.huceo.com/wxnew/?key=您的key&num=10
效果演示:
请求参数:
名称类型必填说明
num 返回数量 默认10
rand 随机获取文章
key 应用APIKEY
返回字段:
名称类型说明
code 返回码
msg 返回说明
返回示例:
{ "code": 200, "msg": "ok", "newslist": [ { "ctime": "2015-07-17", "title": "那个抱走王明涵的,你上微信吗?看完这个你会心软吗?", "description": "中国传统文化", "picUrl": "http://zxpic.gtimg.com/infonew/0/wechat_pics_-667708.jpg/640", "url": "http://mp.weixin.qq.com/s?__biz=MzA3OTg2NjEwNg==&idx=5&mid=209313388&sn=7e30bd2851d22f69580e202c31fc7ecf" }, { "ctime": "2015-06-12", "title": "深悦地产风云榜丨房地产微信公众号一周榜单", "description": "深悦会", "picUrl": "http://zxpic.gtimg.com/infonew/0/wechat_pics_-530408.jpg/640", "url": "http://mp.weixin.qq.com/s?__biz=MjM5NTI4NDk0Mg==&idx=4&mid=206963932&sn=595e66f68648b86fba04fbc3a58e623c" }, { "ctime": "2015-06-14", "title": "一条微信向全世界宣告,这就是惠州!", "description": "西子湖畔", "picUrl": "http://zxpic.gtimg.com/infonew/0/wechat_pics_-536516.jpg/640", "url": "http://mp.weixin.qq.com/s?__biz=MjM5NTAzMDQ0MA==&idx=1&mid=209423088&sn=fc5c230b38e4485a01bdc7693714047b" }, ]}
实现方法请结合这篇文章《微信开发实例全注释代码分享》:
1,在function handleText($postObj) //消息关键词处理函数 增加判断:
if(mb_substr($keyword,0,2,'utf-8') == "新闻"){ $resultStr = $this->ReNews($postObj); //图文消息处理函数 echo $resultStr; return; }
2,在ReNews()下增加如下代码:
private function ReNews($postObj){ //消息头模板 $newsTh = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <ArticleCount>%s</ArticleCount> <Articles>"; //消息体模板 $newsTb = "<item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item>"; //消息尾模板 $newsTf = "</Articles> <FuncFlag>0</FuncFlag> </xml>"; $msgType = "news"; //消息类型 $Artic = "10"; //多图文消息数量 //封装消息头格式 $head = sprintf($newsTh, $postObj->FromUserName, $postObj->ToUserName, time(),$msgType,$Artic); //天行数据微信精选数据API $apiurl = file_get_contents ('http://api.huceo.com/wxnew/?key=您的key&num=3'); //解析json数据 $reg = json_decode ( $apiurl, true ); $txapi = $reg['newslist']; //循环赋值 foreach ($txapi as $newsStr){ //封装消息体格式 $body .= sprintf($newsTb, $newsStr['title'],$newsStr['description'], $newsStr['picUrl'], $newsStr['url']); } //封装消息尾格式 $FuncFlag = 0; $foot = sprintf($newsTf, $FuncFlag); //返回完整的图文消息数据 return $head.$body.$foot; }
OK,这样就可以通过调用天行数据微信精选API来动态回复多图文消息了。