>  기사  >  백엔드 개발  >  WeChat에서 선정한 기사를 얻기 위한 PHP WeChat 개발

WeChat에서 선정한 기사를 얻기 위한 PHP WeChat 개발

*文
*文원래의
2017-12-29 18:38:521695검색

이 기사에서는 WeChat에서 선택한 기사의 관련 정보를 쿼리하는 PHP WeChat 개발의 간단한 구현을 주로 자세히 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.

WeChat에서 상대적으로 클릭 수가 많은 일부 기사를 선택하여 확인하세요.
apikey를 신청하는 것을 잊지 마세요(Baidu 계정에 로그인하면 얻을 수 있습니다). 완료해야 할 기능은 다음과 같습니다.

1. 사용자가 "기사"에 응답하면 공개 계정이 반환됩니다. 기사 카테고리의 번호(예: 9, 기술)

2. 사용자가 wz9, 1, Tencent를 답장하면 과학기술 기사에서 "Tencent"라는 키워드가 포함된 기사로 돌아갈 수 있고, 첫 번째 페이지(wz9, 2, Tencent)를 표시할 수 있습니다. 페이지가 반환되며 각 페이지가 반환됩니다. 기사 수는 사용자 정의할 수 있습니다. 여기에는 7개의 기사를 다시 넣었습니다.

세부 단계:

1. "article"에 회신하고 모든 기사 카테고리의 ID를 반환합니다. 다음 코드는 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>";

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


   }

2. 이때 echo의 $resultStr은 모든 기사의 분류 . 사용자는 자신이 좋아하는 카테고리를 선택하여 카테고리 ID를 기준으로 기사를 볼 수 있습니다. 예를 들어 wz19, 1, 농구에 답글을 달면 스포츠로 분류된 농구에 관한 기사를 볼 수 있습니다.
인터페이스를 호출하고 함수를 구현하기 위한 구체적인 코드는 다음과 같습니다.

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

$header = array('apikey: ');인 경우 자신만의 apikey를 입력하는 것을 잊지 마세요. 그렇지 않으면 인터페이스가 귀하의 요청 반환을 거부하십시오. wechat 공개 계정 개발 및 구성의 공통 오류 메시지 요약 wechat 공개 계정은 사용자 관리 기능을 구현합니다. 계좌결제

위 내용은 WeChat에서 선정한 기사를 얻기 위한 PHP WeChat 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.