PHP微信开发之查询微信精选文章
查询微信里的一些精选的,点击量比较大的文章。
别忘记申请apikey(登录百度账号即可获取),要完成的功能是:
1、用户回复"文章",公众号要返回文章分类的编号(比如9、科技)。
2、用户回复wz9,1,腾讯 则能返回科技类文章中,关键词为“腾讯”的文章,并且显示第一页(wz9,2,腾讯则可以返回第二页,每一页返回的文章数量可以自定义,此处我放回7篇)。
详细步骤:
1、回复“文章”,返回所有文章分类的id。下面的代码是responseMsg方法里的一部分,觉得看得不明白的或者第一次接触微信开发的,可以参考我的文章:https://www.nhooo.com/article/87252.htm
if(!empty($postStr)){ //解析post来的XML为一个对象$postObj $postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA); $fromUsername=$postObj->FromUserName;//请求消息的用户 $toUsername=$postObj->ToUserName;//"我"的公众号id $keyword=trim($postObj->Content);//用户发送的消息内容 $time=time();//时间戳 $msgtype='text';//消息类型:文本 $textTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>";
$which=mb_substr($keyword,0,2,'UTF-8');
elseif($which=="文章"){ $ch=curl_init(); $url='http://apis.baidu.com/showapi_open_bus/weixin/weixin_article_type'; $header=array('apikey:你自己的apikey'); //添加apikey到header curl_setopt($ch,CURLOPT_HTTPHEADER,$header); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //执行HTTP请求 curl_setopt($ch,CURLOPT_URL,$url); $res=curl_exec($ch); $res=json_decode($res,true);//获取文章分类name和id foreach($res['showapi_res_body']['typeList']as$v){ $article[]=$v['id']."、".$v['name']; } sort($article,SORT_NUMERIC); foreach($articleas$v){ $contentStr.=$v."\n"; } $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgtype,$contentStr); echo$resultStr; exit(); }
2、此时echo的$resultStr就是所有文章的分类了。用户根据分类的id,可以选择自己喜欢的分类查看文章,比如回复wz19,1,篮球可以查看分类为体育的关于篮球的文章。
具体的调用接口和实现功能的代码如下:
elseif($which=="wz"){ list($art_id,$page_id,$keyname)=split(',',$keyword); $art_id=str_replace('wz','',$art_id); $ch=curl_init(); $url='http://apis.baidu.com/showapi_open_bus/weixin/weixin_article_list?typeId='.$art_id.'&page='.$page_id.'&key='.urlencode($keyname); $header=array('apikey:你自己的apikey'); //添加apikey到header curl_setopt($ch,CURLOPT_HTTPHEADER,$header); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //执行HTTP请求 curl_setopt($ch,CURLOPT_URL,$url); $res=curl_exec($ch); $res=json_decode($res,true); foreach($res['showapi_res_body']['pagebean']['contentlist']as$k=>$v){ if($k<=6){ $arts[]=$v; }else{ break; } } $items=""; foreach($artsas$v){ $items.="<item> <Title><![CDATA[".$v['title']."]]></Title> <Description><![CDATA[".$v['title']."]]></Description> <PicUrl><![CDATA[".$v["contentImg"]."]]></PicUrl> <Url><![CDATA[".$v['url']."]]></Url> </item>"; } $textTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <ArticleCount>7</ArticleCount> <Articles>".$items." </Articles> </xml>"; $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time); echo$resultStr; exit(); }
别忘了
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。