如何回复图文消息?

当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应(现支持回复文本、图片、图文、语音、视频、音乐)。严格来说,发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复。

自定义回复图文是自定义回复文本,图片,图文中最为复杂的,所以就以图文为例。


	//回复文本
	public function reply_news(){
		$keyword=I('post.keyword');
		$media_id=I('post.media_id');
		$title=I('post.title');
		$url=I('post.url');
		$content=I('content');
		$content_source_url=I('post.content_source_url');

		if(empty($keyword) || empty($url)){
			$this->ajaxReturn(array('status'=>0,'msg'=>'必须输入关键字和选择图片'));
			exit;
		}
	    //选择本地图片,需上传到公众平台
		if (empty($media_id)) {
			$accessToken=getAccess_token();
   			include APP_PATH . 'LaneWeChat/lanewechat.php';

   			//上传永久图片
   			 $api="https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=$accessToken&type=image";
   			 $file=realpath('.' . $url);
   			 // $data['media']=Curl::addFile($file);
   			 $data['media']='@'.$file;
                         $ret=Curl::callWebServer($api,$data,'post',1,0);

            //上传成功
            if (isset($ret['media_id'])) {
            	$media_id=$ret['media_id'];
             	$url=$ret['url'];
            }else{
            	$ret['fail']='本地图片上传公众平台失败';
            	$this->ajaxReturn(array('status'=>1,'msg'=>$ret));
            	exit;
            }

		$data['url']=$content_source_url;
		$data['picurl']=$url;
		$data['title']=$title;
		$data['description']=$content;
		$data['url']=$url;
		$reply_id=M('mp_reply_news')->add($data);

		$mp=getCurrentMp();
		$arr['mp_id']=$mp['id'];
		$arr['type']='news';
		$arr['keyword']=$keyword;
		$arr['reply_id']=$reply_id;
		$ret=M('mp_rule')->add($arr);
		if ($ret) {
                        $this->ajaxReturn(array('status'=>1,'msg'=>'添加成功','url'=>U('replynews')));
		}else{
			$this->ajaxReturn(array('status'=>1,'msg'=>'添加失败'));
		}		
	    }
	}

1.首先需要写回复图文的方法,如上,其实回复图文是回复文本与回复图片的结合,只要会了文本与图片自然也会回复文本的。当然不要忘了写上传代码,如下,这两段代码要放到一个控制器当中

   
 //接受文件上传
    public function upload(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize = 3145728 ;// 设置附件上传大小
        $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->rootPath = './Uploa
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值