How to query code analysis of selected articles in WeChat development

PHPz
Release: 2017-04-02 15:39:46
Original
1561 people have browsed it

QuerySome selected ones in WeChat, click volume comparison Big article.
Don’t forget to apply for apikey (you can get it by logging in to your Baidu account). The functions to be completed are:

1. User reply" Article", the official account should return the number of the article category (for example, 9, technology).

2. If the user replies wz9, 1, Tencent, it can return articles with the keyword "Tencent" in technology articles, And display the first page (wz9, 2, Tencent can return to the second page, the number of articles returned on each page can be customized, here I put back 7 articles)

Detailed steps:

1. Reply to "article" and return the ids of all article categories.

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>";
Copy after login

$which = mb_substr($keyword, 0, 2, 'UTF-8');

elseif($which == "文章"){
    $ch = curl_init();
    $url = &#39;http://apis.baidu.com/showapi_open_bus/weixin/weixin_article_type&#39;;
    $header = array(&#39;apikey: 你自己的apikey&#39;);
 
    // 添加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[&#39;showapi_res_body&#39;][&#39;typeList&#39;] as $v){
     $article[] = $v[&#39;id&#39;] . "、" . $v[&#39;name&#39;];
    }
    sort($article, SORT_NUMERIC);
    foreach($article as $v){
     $contentStr .= $v . "\n";
    }
    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgtype, $contentStr);
    echo $resultStr;
    exit();
    }
Copy after login

2. At this time, the $resultStr of echo is the category of all articles. Users can choose their favorite category to view articles based on the category id. For example, if you reply to wz19, 1, Basketball, you can view articles about basketball classified as sports. .
The specific code for calling the interface and implementing the function is as follows:

elseif($which == "wz"){
    list($art_id, $page_id, $keyname) = split(&#39;,&#39;, $keyword);
    $art_id = str_replace(&#39;wz&#39;, &#39;&#39;, $art_id);
 
    $ch = curl_init();
    $url = &#39;http://apis.baidu.com/showapi_open_bus/weixin/weixin_article_list?typeId=&#39; . $art_id . &#39;&page=&#39; . $page_id . &#39;&key=&#39; . urlencode($keyname);
 
    $header = array(&#39;apikey: 你自己的apikey&#39;);
 
    // 添加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[&#39;showapi_res_body&#39;][&#39;pagebean&#39;][&#39;contentlist&#39;] as $k=>$v){
     if($k <= 6){
      $arts[] = $v;
     }else{
      break;
     }
    }
 
    $items = "";
    foreach($arts as $v){
     $items .= "<item>
    <Title><![CDATA[" . $v[&#39;title&#39;] . "]]></Title>
    <Description><![CDATA[" . $v[&#39;title&#39;] . "]]></Description>
    <PicUrl><![CDATA[" . $v["contentImg"] . "]]></PicUrl>
    <Url><![CDATA[" . $v[&#39;url&#39;] . "]]></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();
 
 
   }
Copy after login

Don’t forget to fill in your own apikey when $header = array('apikey: '); otherwise The interface will refuse to return your request

.

The above is the detailed content of How to query code analysis of selected articles in WeChat development. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template