微信二次开发怎样给粉丝打标签?

一个微信公众众号肯定离不开粉丝的支持,大量的粉丝如何管理呢,这就需要给粉丝分类——给粉丝打标签。接下来给大家分享如何给粉丝打标签,这样就可以管理你的粉丝了。

首先要添加二维码:新建一个控制器qrcodeController.class.php

public function qrcodeadd(){
		$mp = getCurrentMp();
		$arr['mp_id'] = $mp['id']; 
		$arr=I('post.');
		// dump($arr);
		$id=M('qrcode')->add($arr);
		// dump($arr);
		//调用createTag

		$this->createTag($arr['scene_str']);
		include APP_PATH . 'LaneWeChat/lanewechat.php';
		$ret=Popularize::createTicket($arr['qr_type'],$arr['expire'],$arr['scene_str']);
		// dump($ret);
		// exit;
		if (isset($ret['ticket'])) {
			$qrcodefile= $this->downCode($ret['ticket']);
			$ret['src']=$qrcodefile;
			$ret['create_time']=time();
			$ret=M('qrcode')->where("id=$id")->save($ret);
			$this->ajaxReturn(array('status'=>1,'msg'=>ok,'url'=>U('qrcode'))); 
		}else{
			$this->ajaxReturn(array('status'=>0,'msg'=>$ret));
		}

	}

之后就是非常关键的给粉丝打标签:

public function createTag(){
		$mp=$this->mp;
		$tagname="123";
		$where['mp_id']=$mp['id'];
		$where['tag']=$tagname;
		$data=M('tags')->where($where)->find();
		$access_token = getAccess_token();
		if(empty($data)){
			$api="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=".getAccess_token();
			// dump($api);
			// exit;
			$arr=array();
			$arr['tag']['name']=$tagname;
			$json=json_encode($arr,JSON_UNESCAPED_UNICODE);
			// echo $json;
			// exit;
			include APP_PATH . 'LaneWeChat/lanewechat.php';
			$ret=\LaneWeChat\Core\Curl::callWebServer($api,$json,'POST');
			// dump($ret);
			// exit;
			if($ret['tag']){
				// $mp = getCurrentMp();
				// $mp=$this->mp;
				$row['mp_id']=$mp['id'];
				$row['tag_id']=$ret['tag']['id'];
				$row['tag']=$ret['tag']['name'];
				$data=M('tags')->add($row);
				// dump($data);
				// exit;
			}
		}
	}
	//给粉丝打标签
	public function OpenidTag(){
		 	$openid="oBlcq0wID38DyO--8o4pp72oxl6Y";
		 	$access_token = getAccess_token();
		 	include APP_PATH . 'LaneWeChat/lanewechat.php';
		 	$api="https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=$access_token";
		 	$arr['openid_list']=array($openid);
		 	$arr['tagid']=101;
		 	$json=json_encode($arr);
		 	 
		 	$ret=\LaneWeChat\Core\Curl::callWebServer($api,$json,"POST");

		 	print_r($ret);

		 }
	function downCode($ticket){

		$ret=Popularize::getQrcode($ticket);
		return $ret;
	}
	public function gettag(){
		$api="https://api.weixin.qq.com/cgi-bin/tags/getidlist?access_token=".getAccess_Token();
		$arr['openid']="oBlcq0wID38DyO--8o4pp72oxl6Y";
		$arr = json_encode($arr,JSON_UNESCAPED_UNICODE);
		$ret = \LaneWeChat\Core\Curl::callWebServer($api,$arr,'post',true,false);
        print_r($ret);
	}

在这里我们还调用lanwechart框架里的一些方法:未扫面前

 public static function eventQrsceneSubscribe(&$request){
        /*
        *用户扫描带参数二维码进行自动分组
        *此处添加此代码是大多数需求是在扫描完带参数二维码之后对用户自动分组
        */
        $sceneid = str_replace("qrscene_","",$request['eventkey']);
        //移动用户到相应分组中去,此处的$sceneid依赖于之前创建时带的参数
        if(!empty($sceneid)){
            UserManage::editUserGroup($request['fromusername'], $sceneid);
            $result=UserManage::getGroupByOpenId($request['fromusername']);
            //方便开发人员调试时查看参数正确性
            $content = '欢迎您关注我们的微信,将为您竭诚服务。二维码Id:'.$result['groupid'];
        }else
            $content = '欢迎您关注我们的微信,将为您竭诚服务。';
        return ResponsePassive::text($request['fromusername'], $request['tousername'], $content);
    }

扫描后:

 public static function eventScan(&$request){
         // $content='abc';
        $scene_str = str_replace("qrscene_","",$request['eventkey']);
        // return $scene_str;
        // exit;
        $arr=self::fansGroup($request['fromusername'],$scene_str);
        $content = '您被分配到:'.$scene_str.'组';
        
        return ResponsePassive::text($request['fromusername'], $request['tousername'], $content);
    }

还要调用:给粉丝分组的一个方法:

//粉丝分组
    private static function fansGroup($openid,$tagname){
        $id = $_GET['id'];
        $where['mp_id']=$id;
        $where['tag']=$tagname;
        $tags=M('tags')->where($where)->find();

        include APP_PATH ."LaneWeChat/lanewechat.php";
        $api='https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token='.getAccess_Token();
        $arr['openid_list']=array($openid);
        $arr['tagid']=$tags['tagid'];
        $arr = json_encode($arr,JSON_UNESCAPED_UNICODE);
        $ret = \LaneWeChat\Core\Curl::callWebServer($api,$arr,'post',true,false);
        if(isset($ret['errcode']) && $ret['errcode']==0){
            return true;
        }else{
            return $ret;
        }

    }
大家赶紧试一下吧,这样给粉丝打了标签就可以很好的给粉丝打标签了。


猜你喜欢

转载自blog.csdn.net/gqycrush/article/details/80101318
今日推荐