微信二次开发——获取粉丝列表

获取用户基本信息

公众号可获得关注者的openid(对于不同公众号,同一用户的openid不同)。公众号可用过接口来根据openid获取用户基本信息。

获取用户列表接口:

http请求方式: GET(请使用https协议)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID

看着以上接口我们可以看出,首先我们需要有一个参数access_token

获取access_token的方法:可以直接写一个方法来之后直接来调用。获取access_token的方法获取在文章自定义菜单中有详细的代码。如果还不知道怎么获取 access_token请参照本人的微信二次开发-自定义菜单创建接口。

next_token(第一个拉取的openid,如果不填写默认从第一个开始获取)。

下边是lanewechat里边已经封装好的一个获取用户信息的基本方法getFansList()

 public static function getFansList($next_openid=''){

        //获取ACCESS_TOKEN

        // $accessToken = AccessToken::getAccessToken();

        $accessToken = getAccess_token();

        if(empty($next_openid)){

            $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token='.$accessToken;

        }else{

            $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/get?access_token='.$accessToken.'&next_openid='.$next_openid;

        }

        return Curl::callWebServer($queryUrl, '', 'GET');

    }

在这个里边我们可以获取到粉丝们的openid。获取到用户的openid之后的们就可以去批量获取用户信息。

批量获取用户信息接口:

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

下边是获取用户基本信息的代码:

public static function getUserInfo($openid){
        $accessToken = getAccess_token();
        $queryUrl = "https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=".$accessToken;
        $json=json_encode(array('user_list'=>$openid));
        return Curl::callWebServer($queryUrl, $json, 'POST');

    }

如果成功之后会返回json数据包,如果错误的话会返回:

{"errcode":40013,"errmsg":"invalid appid"}

这样我们就成功的获取到了用户的基本信息。也就是关注了你的粉丝,我们可以将这些查询出来的信息,存入数据库,将数据保存下来,然后我们就可以将这样数据显示在我们的页面上。

下边是我的php里的代码:

	public function add(){
	    $mp=$this->mp;//获取使用的公众号的id
        $where['mp_id']=$mp['id'];
        M('mp_friends')->where($where)->delete();
        include_once APP_PATH.'LaneWeChat/lanewechat.php';
        $ret=UserManage::getFansList();
        $openids=$ret['data']['openid'];
        $arr=array();
        foreach ($openids as $key => $value) {
        	$row=array();
                $row['openid']=$value;
                $row['lang']='zh-CN';
                $arr[]=$row;
        }
        $ret=UserManage::getUserInfo($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']);
                }
                M('mp_friends')->addAll($data);
        }
       $this->success('同步完成',U('index'));
	}


你可能感兴趣的:(微信二次开发)