Développement PHP WeChat pour obtenir les articles sélectionnés par WeChat

*文
Libérer: 2023-03-18 20:02:02
original
1651 Les gens l'ont consulté

Cet article présente principalement en détail la mise en œuvre simple du développement PHP WeChat pour interroger les informations pertinentes des articles sélectionnés par WeChat. Les amis intéressés peuvent s'y référer. J'espère que cela aide tout le monde.

Vérifiez quelques articles sélectionnés dans WeChat avec un nombre de clics relativement important.
N'oubliez pas de demander apikey (vous pouvez l'obtenir en vous connectant à votre compte Baidu). La fonction à compléter est :

1. "article", et le compte officiel doit renvoyer le numéro de la catégorie de l'article (Par exemple, 9. Technologie).

2. Si l'utilisateur répond wz9, 1, Tencent, il peut revenir aux articles avec le mot-clé « Tencent » dans les articles technologiques, et afficher la première page (wz9, 2, Tencent peut revenir au deuxième page, Le nombre d'articles renvoyés sur chaque page peut être personnalisé, ici je renvoie 7 articles).

Étapes détaillées :

1. Répondez à « article » et renvoyez les identifiants de toutes les catégories d'articles. Le code suivant fait partie de la méthode ResponseMsg

  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>";
Copier après la connexion

$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();


   }
Copier après la connexion

2. À l'heure actuelle, le $resultStr de echo est la classification de tous les articles. Les utilisateurs peuvent choisir leur catégorie préférée pour afficher les articles en fonction de l'ID de catégorie. Par exemple, en répondant à wz19, 1, basket-ball, vous pouvez consulter des articles sur le basket-ball classés comme sports.
Le code spécifique pour appeler l'interface et implémenter la fonction est le suivant :

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();
   }
Copier après la connexion

N'oubliez pas $header = array('apikey: '); Merci de remplir votre propre apikey à ce moment, sinon l'interface refusera de retourner votre demande.

Recommandations associées :

Un résumé des messages d'erreur courants dans le développement et la configuration des comptes publics WeChat

Le compte public WeChat implémente la fonction de gestion des utilisateurs

Explication détaillée de l'accès TP au paiement du compte public WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!