给粉丝添加标签打标签

首先创建标签,以下代码是创建标签
	public function createTag($tagname=""){
		$mp=$this->mp;
		// $tagname="正月初五";
		$where['mp_id']=$mp['id'];
		$where['tag']=$tagname;

		$data=M('tage')->where($where)->find();
		
		if (empty($data)) {
			$api="https://api.weixin.qq.com/cgi-bin/tags/create?access_token=". getAccess_token();
			$arr=array();
			$arr['tag']['name']=$tagname;
			$json=json_encode($arr,JSON_UNESCAPED_UNICODE);
			include APP_PATH . 'LaneWeChat/lanewechat.php';
			// echo $json;
			// exit;
			$ret=Curl::callWebServer($api,$json,'post',1,0);
			// dump($ret);
			// exit;
			if ($ret['tag']) {
				$row['mp_id']=$mp['id'];
				$row['tag_id']=$ret['tag']['id'];
				$row['tag']=$ret['tag']['name'];
				
				M('tage')->add($row);
				
			}
		}
	}

创建一个标签数据表 把信息添加进去

在调用wechatrequest文件中的以下几个方法

public static function eventQrsceneSubscribe(&$request){
        $scene_str=str_replace("qrscene_", "", $request['eventkey']);
        $ret=self::fansGroup($requestp['fromusername'],$scene_str);
        if ($ret===true) {
            $content='您是新粉丝,分配到:'.$scene_str;
        }else{
            $content='失败了,'.json_encode($ret);
        }
        return ResponsePassive::text($request['fromusername'],$request['tousername'],$content);
    }
    
    private static function fansGroup($openid,$tagname){
        include APP_PATH . 'LaneWeChat/lanewechat.php';
        $id=$_GET['id'];
        $where['mp_id']=$id;
        $where['tag']=$tagname;
        $data=M('tage')->where($where)->find();
        if (!empty($data)) {
            $api="https://api.weixin.qq.com/cgi-bin/tags/members/batchtagging?access_token=". getAccess_token();
            $arr=array();
            $arr=['openid_list'=>array($openid),'tagid'=>(int)$data['tag_id']];
            $json=json_encode($arr);
            $ret=\LaneWeChat\Core\Curl::callWebServer($api,$json,'post');
            if (isset($ret['errcode'])&&$ret['errcode']==0) {
                return true;
            }else{
                return $ret;
            }
        }else{
            return '无此标签'  . $tagname;
        }
    }
    /**
     * @descrpition 扫描二维码(已关注时)
     * @param $request
     * @return array
     */
    public static function eventScan(&$request){
        // $content = '您已经关注了哦~';
        // return ResponsePassive::text($request['fromusername'], $request['tousername'], $content);
        if (isset($request['eventkey']) && $request['ticket']) {
            $scene_str=$request['eventkey'];
            $ret=self::fansGroup($request['fromusername'],$scene_str);
            if ($ret===true) {
                 $content='分配到:'.$scene_str;
            }else{
                $content='失败了,'.json_encode($ret); 
            }
        }
        return ResponsePassive::text($request['fromusername'],$request['tousername'],$content);
    }

在修改一下friends控制器里的index方法,以下为修改后的代码

public function index($tagid=''){
       	$mp=$this->mp;
       	$where['mp_id']=$mp['id'];
       	$data=M('mp_friends')->field('id,headimgurl,nickname,subscribe_time,openid,tagid_list')->where($where)->order()->select();
        if (!empty($tagid)) {
           $where['tagid_list']=array('like',"%{$tagid}%");

        }
        $tag=M('tage')->where($where)->select();
        $this->assign('tag',$tag);
       	$this->assign('data',$data);
       	$this->display();

   }

还有同步粉丝的方法也要修改一下

public function downfriends(){
       $mp = $this ->mp;
         $where['mp_id'] = $mp['id'];
         M('mp_friends')->where($where)->delete();
         include APP_PATH . 'LaneWeChat/lanewechat.php';
         $ret = UserManage::getFansList();

         $openids = $ret['data']['openid'];
         // print_r($data);
         $arr = array();
       foreach ($openids as $value) {
           $row=array();
           $row['openid'] = $value;
           $row['lang'] ='zh-CN';
           $arr[]=$row;
       }

       $ret = UserManage::getManyUserInfo($arr);
       if(isset($ret['user_info_list'])){
        $data = $ret['user_info_list'];
        foreach ($data as &$value) {
            $value['mp_id'] = $mp['id'];
            // $value['tagid_list'] = json_encode($value['tagid_list']);
            $value['tagid_list']=implode(',',$value['tagid_list']);
        }
        M('mp_friends')->addAll($data);
       }
     
     $this->success('同步完成',U('index'));
       
	}

猜你喜欢

转载自blog.csdn.net/sensiblely/article/details/80098236