精华内容
下载资源
问答
  • 原文链接:微信公众号输入关键字回复WordPress搜索结果 我是使用这个插件(微信机器人高级版)实现微信公众号输入关键字回复WordPress搜索结果的。 教程在这里。 微信机器人高级版安装说明 效果如下图所示。 后记:...

    我的主博客是可定博客(https://wnag.com.cn/)

    原文链接:微信公众号输入关键字回复WordPress搜索结果

    我是使用这个插件(微信机器人高级版)实现微信公众号输入关键字回复WordPress搜索结果的。

    教程在这里。

    微信机器人高级版安装说明

    效果如下图所示。

    Screenshot_20200328-140314_WeChat.jpg

    后记:因为影响到微信公众号自定义菜单的使用,所以把 微信公众平台 - 开发 - 基本配置 - 服务器配置 关闭了。

    特别声明:本文章原则上禁止转载,如确实要转载,请私信本博主,尊重劳动成果。

    展开全文
  • 微擎系统微信公众号关键字触发回复多条消息实现使用客服消息实现发送多条图文消息第一步第二步、修改respond方法第三步、写入我们自己实现发送图文的方法第四步、获取access token信息第五步、写发送的方法第六步、...

    使用客服消息实现发送多条图文消息

    第一步

    首先找到微擎关键字触发发送消息的PHP文件在
    framework->builtin->core->processor.php文件里面
    framework->builtin->core->processor.php--MingGyGy

    第二步、修改respond方法

    public function respond() {
         $result = $this->msg_respond();
         return $this->respText($result);
    }
    

    第三步、写入我们自己实现发送图文的方法

    msg_respond()方法

    private function msg_respond() {
            $rids = !is_array($this->rule) ? explode(',', $this->rule) : $this->rule;
            //数据库中获取发送文字的信息
            $reply = table('basic_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
            //图片
            $img_reply = table('images_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
            //图文
            //$news_reply = table('news_reply')->where(array('rid IN' => $rids,'parent_id ==' => -1))->orderby('id')->getAll();
            $news_reply = table('news_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
            //音乐
            $music_reply = table('music_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
            //语音
            $voice_reply = table('voice_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
            //视频
            $video_reply = table('video_reply')->where(array('rid IN' => $rids))->orderby('id')->getAll();
    //父级找子级
            /*foreach ($news_reply as &$value){
                //if ($value['parent'] != -1) {
                    $value['parent_data'] = table('news_reply')->where(['parent_id' => $value['id']])->orderby('id')->getAll();
                //}
            }*/
    
            //判断是否为空,如果都为空返回false
            if (empty($reply)&&empty($img_reply)&&empty($news_reply)&&empty($music_reply)&&empty($voice_reply)&&empty($video_reply)) {
                return false;
            }
            $access_token=$this->getToken();
            $postStr=file_get_contents('php://input');
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            if (count($reply)+count($img_reply)+count($news_reply)+count($music_reply)+count($voice_reply)+count($video_reply)==1){
                if($reply!=null){
                    $reply[0]['content'] = htmlspecialchars_decode($reply[0]['content']);
                    $reply[0]['content'] = str_replace(array('<br>', '&nbsp;'), array("\n", ' '), $reply[0]['content']);
                    $reply[0]['content'] = strip_tags($reply[0]['content'], '<a>');
                    return $reply[0]['content'];
                }elseif ($img_reply!=null){
                    for ($y=0;$y<count($img_reply);$y++){
                        $this->imageReply($postObj->FromUserName,$access_token,$img_reply[$y]['mediaid']);
                    }
                }elseif ($news_reply!=null){
                    //$this->judgeType('news');
                    for ($j=0;$j<count($news_reply);$j++){
    
                        //$this->newsReply($postObj->FromUserName,$access_token,$news_reply[$j]['url'],$news_reply[$j]['thumb'],$news_reply[$j]['title'],$news_reply[$j]['description'],$news_reply[$j]['parent_data']);
                        $this->newsReply($postObj->FromUserName,$access_token,$news_reply[$j]['url'],$news_reply[$j]['thumb'],$news_reply[$j]['title'],$news_reply[$j]['description'],$news_reply[$j]['media_id']);
                    }
                }elseif ($music_reply!=null){
                    $result = $this->music_respond();
                    return $this->respMusic(array(
                        'Title' => $result['title'],
                        'Description' => $result['description'],
                        'MusicUrl' => $result['url'],
                        'HQMusicUrl' => $result['hqurl'],
                    ));
                }elseif ($voice_reply!=null){
                    for ($s=0;$s<count($voice_reply);$s++){
                        $this->voiceReply($postObj->FromUserName,$access_token,$voice_reply[$s]['mediaid']);
                    }
                }elseif ($video_reply!=null){
                    for ($d=0;$d<count($video_reply);$d++){
                        $this->videoReply($postObj->FromUserName,$access_token,$video_reply[$d]['mediaid'],$video_reply[$d]['title'],$video_reply[$d]['description']);
                    }
                }else{
                    return "数据错误!!!";
                }
            }else{
                //循环发送图片
                for ($y=0;$y<count($img_reply);$y++){
                    $this->imageReply($postObj->FromUserName,$access_token,$img_reply[$y]['mediaid']);
                }
                //循环发送图文
                for ($j=0;$j<count($news_reply);$j++){
                    $this->newsReply($postObj->FromUserName,$access_token,$news_reply[$j]['url'],$news_reply[$j]['thumb'],$news_reply[$j]['title'],$news_reply[$j]['description'],$news_reply[$j]['media_id']);
                }
                //视频
                for ($d=0;$d<count($video_reply);$d++){
                    $this->videoReply($postObj->FromUserName,$access_token,$video_reply[$d]['mediaid'],$video_reply[$d]['title'],$video_reply[$d]['description']);
                }
                //语音
                for ($s=0;$s<count($voice_reply);$s++){
                    $this->voiceReply($postObj->FromUserName,$access_token,$voice_reply[$s]['mediaid']);
                }
                //循环发送文字
                for($i=0;$i<count($reply);$i++){
                    if($i==count($reply)-1){
                        return $reply[$i]['content'];
                    }else{
                        $this->replymsg($postObj->FromUserName,$access_token,trim($reply[$i]['content']));
                    }
                }
            }
            return 0;
        }
    

    第四步、获取access token信息

    我们自己写一个getToken()方法,需要修改 a p p i d 和 appid和 appidsecret参数,修改为你自己公众号上的appid和secret

    private    function getToken(){
            $appid = "你自己的appid";
            $secret = "你自己的secret";
            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret;
            $ch = curl_init();//初始化
            curl_setopt($ch, CURLOPT_URL, $url);//与url建立对话
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); //进行配置
            curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); //进行配置
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//进行配置
            $output = curl_exec($ch);//获取Access Token
            curl_close($ch);//关闭会话
            $jsoninfo = json_decode($output, true);
            $access_token =$jsoninfo["access_token"];
            echo $access_token;
            return $access_token;
        }
    

    第五步、写发送的方法

    //发送文字的方法
        private function replymsg($fromUsername,$access_token,$content){
    
            $data = '{
                "touser":"'.$fromUsername.'",
                "msgtype":"text",
                "text":
                {
                     "content":"'.$content.'"
                }
            }';
    
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
        //发送图片的方法
        private function imageReply($fromUsername,$access_token,$mediaId){
            $data='{
                "touser":"'.$fromUsername.'",
                "msgtype":"image",
                "image":
                    {
                        "media_id":"'.$mediaId.'"
                    }
            }';
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
        //发送图文的方法
        private function newsReply($fromUsername,$access_token,$url,$picUrl,$title,$description,$mediaid){
            $data = '{
                "touser":"'.$fromUsername.'",
                "msgtype":"mpnews",
                "mpnews":{
                    "media_id":"'.$mediaid.'"
                }
            }';
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
        //发送音乐的方法
        private function musicReply($fromUsername,$access_token,$title,$description,$url,$hqurl){
            $data = '{
                "touser":"'.$fromUsername.'",
                "msgtype":"music",
                "music":
                 {
                    "title":"'.$title.'",
                    "description":"'.$description.'",
                    "musicurl":"'.$url.'",
                    "hqmusicurl":"'.$hqurl.'"
                 }
            }';
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
        //语音
        private function voiceReply($fromUsername,$access_token,$mediaid){
            $data='
                {
        "touser":"'.$fromUsername.'",
        "msgtype":"voice",
        "voice":
        {
          "media_id":"'.$mediaid.'"
        }
    }
            ';
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
        //视频
        private function videoReply($fromUsername,$access_token,$mediaid,$title,$description){
            $data = '
                {
        "touser":"'.$fromUsername.'",
        "msgtype":"video",
        "video":
        {
          "media_id":"'.$mediaid.'",
          "title":"'.$title.'",
          "description":"'.$description.'"
        }
    }
            ';
            $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token;
            //$this->https_post($url,$data);
            $result = $this->https_post($url,$data);
            $final = json_decode($result);
            return $final;
        }
    

    第六步、https_post方法

    private function https_post($url,$data)
        {
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $url);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            $result = curl_exec($curl);
            if (curl_errno($curl)) {
                return 'Errno'.curl_error($curl);
            }
            curl_close($curl);
            return $result;
        }
    

    七、展示一下效果吧

    在这里插入图片描述

    八、觉得本文章对你有帮助的麻烦动下手指点个赞呗

    ----hello word开始,hello word结束!

    展开全文
  • 最近开发了微信关注回复和关键字回复功能,发现网上虽然资料很多,但大都是截取片段,很难弄懂全部流程,所以自己花点时间总结了一下全流程开发,记录一下,希望对搜到看到的朋友有所帮助。 第一部分:微信后台配置...

    最近开发了微信关注回复和关键字回复功能,发现网上虽然资料很多,但大都是截取片段,很难弄懂全部流程,所以自己花点时间总结了一下全流程开发,记录一下,希望对搜到看到的朋友有所帮助。

    第一部分:微信后台配置

    需要配置一下服务器地址和令牌,服务器地址就是你需要开发的代码地址,举例说明:假如我的域名是www.baidu.com,我需要在代码目录/php/wxreply.php中进行微信回复功能开发,那我的服务器地址就是 https://www.baidu.com/php/wxreply.php。令牌自己起个名字即可例:weixintoken 

    第二部分:整体流程框架

    需要开发微信回复功能,首先需要明白其工作原理。在整个流程中,有三个部分,微信客户端(微信app和pc端微信),微信服务器,还有开发者服务器。其中的通信过程如下图所示:

    第三部分:代码开发

    其中 $ev == 'subscribe'代表用户关注,$contentStr是回复用语例“欢迎使用本公众号”,$keyword则是用户发送的关键字,可以通过对关键字的处理来回复相应的内容。

    展开全文
  • 今天好朋友问我,他有很多优秀的作品发布到网上免费提供给大家查询,但是他说的想通过网友关注他的微信公众号之后获取验证码才能观看。一是吸引一些粉丝,二是证明一下自己的劳动成果。于是我就安排。 一、功能...

    今天好朋友问我,他有很多优秀的作品发布到网上免费提供给大家查询,但是他说的想通过网友关注他的微信公众号之后获取验证码才能观看。一是吸引一些粉丝,二是证明一下自己的劳动成果。于是我就安排。

    一、功能代码

    首先还是找到主题下面的functions.php。技术functions.php是万能的。添加到当前主题函数模板 functions.php 的最后,代码如下:

    function weixin_fans($atts, $content=null){
    	extract(shortcode_atts( array (
    		'key' => null,
    		'reply' => ''
    		), $atts));
    	// 管理员登录直接显示隐藏内容
    	if ( current_user_can('level_10') ) {
    		return '<div class="hidden-content">'.do_shortcode( $content ).'</div>';
    	}
    	// 输入正确验证码显示隐藏内容
    	if(isset($_POST['weixin_key']) && $_POST['weixin_key']==$key){
    		return '<div class="hidden-content">'.do_shortcode( $content ).'</div>';
    	} else {
    		return '
    		<form class="post-password-form weixin-form" action="'.get_permalink().'" method="post">
    			<div class="weixin-box">
    				<div class="post-secret"><i class="be be-info"></i>输入验证码查看隐藏内容:</div>
    				<p>
    					<input id="wpbox" type="password" size="20" name="weixin_key">
    					<input type="submit" value="提交" name="Submit">
    				</p>
    				<div class="weixin-secret">
    					<div class="weixin-w">扫描二维码关注本站微信公众号或者在微信里搜索:<span class="weixin-n">你的微信公众号名称</span></div>
    					<div class="weixin-w">回复 <span class="weixin-n">'.$reply.'</span> 获取验证码</div>
    					<img src="http://自己的微信公众号二维码图片" alt="weixin">
    				</div>
    			</div>
    		</form>';
    	}
    }
    add_shortcode('weixin', 'weixin_fans');

    修改其中的:

    1、你的微信公众号名称 】更改为自己的公众号名称。

    2、http://自己的微信公众号二维码图片】更改为自己的二维码存放网址。

    二、显示样式

    .hidden-content, .weixin-form {
    	padding: 0 0.5rem;
    	border: 1px dashed #ff4400;
    }
    .weixin-n {
    	color: #ff4400;
    }
    .weixin-form img {
    	width: 100px;
    	height: auto;
    }

     默认主题:添加到主题样式文件中或者外观 → 自定义 → 额外CSS中

    新的主题其他主题:主题功能—自定义—自定义样式css代码

    三、页面文章中使用

    [weixin key=验证码 reply=回复的内容]隐藏的内容[/weixin]

    例如:隐藏【我是123456】这句话。需要关注公众号回复:数字。获取验证码:abc。才能查看

    在页面中这样书写:

    [weixin key=abc reply=数字]我是123456[/weixin]

     这样我们就搭建完成。

    四、公众号配置

    根据我们配置的我们设置一个自动回复功能。在公众号中输入:数字。之后就能收到一个:abc的验证码。在这里自动回复的一定要和Key=后面填写的一致,否则无法打开文件。

     这样就可以关注公众号,回复关键字获取验证码,输入到验证框提交就可以了。

     

    展开全文
  • 微信公众号回复关键字图文文本

    千次阅读 2018-04-19 14:14:12
    这里回复文本消息需要用到的是TextMessage,我们把回复文本消息在【文本消息】类型中给出回复!在我们做消息回复的时候需要设置消息的接收人ToUserName(openid)、消息的发送方 FromUserName、消息类型 MsgType、...
  • 微信公众号 java关键字自动回复,图片显示太小,还有公众号头像怎么去掉 我第一次显示是正常的如下 ![图片说明](https://img-ask.csdn.net/upload/201901/08/1546939563_781377.png) 后来不知道怎么就变成这种的啦!...
  • 技术开发文档: ...amp;amp;amp;id=mp1445241432 ...型以及对应的事件关键字: 1、可接收消息类型: 文本消息——text,语音消息——voice,图片消息——image, 视频消息——video,链接消息...
  • 随着微信公众平台的出现,越来越多的功能都进入了越来越方便的公众号中,我们只需要在微信公众号回复成绩查询就能按步骤查询到自己的成绩,是不是特别方便?接下来小编就给大家讲解一下有关微信公众号设置查询成绩的...
  • 但是SAE上面python的版本太低了,对中文的编码支持不太好,后台添加关键字实在是太累。 后来看到PHP对中文支持比较好,就又学习了PHP查书搜资料又重新写了一下后台,目前达到了我想要的效果,也在一步步的完善中,...
  • 比如数据 21121321233121,243465464366543,微信公众号关键字回复,我们怎样去解析呢,342356435754765 其实这里应该是只有4个回复内容的,但是你后台解析,那么肯定会是5个回复内容,就会出现异常 2、用Json...
  • 主要介绍了php微信公众号开发第四课,php实现简单微信文本通讯,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 微信公众号最常用的功能有两个,一是发布文章;另一个是自动回复。 发布文章: 发布文章功能比较简单,在“素材管理”中点击“新建图文消息”,编辑完成后点击“保存并群发”即可,普通的微信公众号每天只能群发一篇...
  • 1 private functionmsg_respond() {2 $rids = !is_array($this->rule) ? explode(‘,‘, $this->rule) : $this->rule;3 //数据库中获取发送文字的信息4 $reply = table(‘basic_reply‘)->...
  • 微信公众号自动回复内容大全,想知道微信...朋友申请了一个微信公众号在平台里面设置自动回复,但是需要设置很多的关键字,假如用户输入的内容不在我们设置的关键字范围之内,或者输入的内容情况比较多,那么我们...
  • 微信公众号自动回复 - 自定义设置 1.加超链接 <a href='http://www.qq.com'>如何授权登录微星极光</a> 2.加点击自动回复关键字 <a href='weixin://bizmsgmenu?msgmenucontent=测试自动发送&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,073
精华内容 4,029
关键字:

微信公众号关键字回复