关注过微信公众号的都知道,当你输入一个关键字,会有相应的内容回复,有可能是文字,有可能是图片,也有可能是图文,作为程序员这些都是我们要做的,所以接下来要为大家介绍一下自动回复文字图片以及图文消息的相关代码。
首先我们需要引进一个框架,通过这个框架,我们可以更容易,更简单一些。那就是LaneWeChat,没有的可以上网下载一下。
新建一个AutoreplayController.class.php文件,自动回复的方法都在这个控制器里写。这里需要注意一下,在写之前一定要用命名空间 use LaneWeChat\Core\Curl;才能使用这个框架。
自动回复文本消息:
public function replyText(){ $mp=$this->mp; $content=I('post.content'); $keyword=I('post.keyword'); $data['content']=$content; $replay_id=M('mp_replay_text')->add($data); $value['mp_id']=$mp['id']; $value['keyword']=$keyword; $value['replay_id']=$replay_id; $value['type']='text'; $value['status']=$mp['is_use']; $ret=M('mp_rule')->add($value); $this->ajaxReturn(array('msg'=>'上传成功')); }
自动回复图片消息:需要获取media_id,以及url
public function replyImage(){ //图片上传公众号服务器 $url=I('post.url'); $file = realpath($url); // dump($file); // exit; $accessToken = getAccess_token(); include APP_PATH . 'LaneWeChat/lanewechat.php'; //永久素材 $url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image"; $data['media'] = '@' . $file; // dump($data); // exit; $ret = Curl::callWebServer($url,$data,'post',true,false); // dump($ret); // exit; if(isset($ret['media_id'])){ // $mp = $model =M('mp')->where('is_use = 1')->find(); $mp=$this->mp; $url=I('post.url'); $keyword=I('post.keyword'); $data['media_id']=$ret['media_id']; $data['url']=$ret['url']; $replay_id=M('mp_replay_image')->add($data); $value['mp_id']=$mp['id']; $value['keyword']=$keyword; $value['replay_id']=$replay_id; $value['type']='image'; $value['status']=$mp['is_use']; // dump($value); // exit; $ret=M('mp_rule')->add($value); $this->ajaxReturn(array('msg'=>'上传成功')); }else{ $this->ajaxReturn($ret); } // $this->ajaxReturn($ret); }
自动回复图文消息,这个相对于以上两个相对复杂一点,
public function replyNews(){ // $this->display('replynews'); $url=I('post.url'); $file = realpath($url); // dump($file); // exit; $accessToken = getAccess_token(); include APP_PATH . 'LaneWeChat/lanewechat.php'; //永久素材 $url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image"; $data['media'] = '@' . $file; // dump($data); // exit; $ret = Curl::callWebServer($url,$data,'post',true,false); if(isset($ret['media_id'])){ // $mp = $model =M('mp')->where('is_use = 1')->find(); $mp=$this->mp; $url=I('post.url'); $keyword=I('post.keyword'); $title=I('post.title'); $description=I('post.description'); $picurl=I('post.picurl'); $data['url']=$ret['url']; $data['title']=$title; $data['description']=$description; $data['picurl']=$picurl; $replay_id=M('mp_replay_news')->add($data); $value['mp_id']=$mp['id']; $value['keyword']=$keyword; $value['replay_id']=$replay_id; $value['type']='news'; $value['status']=$mp['is_use']; // dump($value); // exit; $ret=M('mp_rule')->add($value); $this->ajaxReturn(array('msg'=>'上传成功')); }else{ $this->ajaxReturn($ret); } }
以上就是我给大家分享的怎样自动回复图文、图片、文本内容的全部代码,有兴趣的同学们赶紧试一下吧。