获取用户列表
公众号可通过本接口来获取帐号的关注者列表,关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成。一次拉取调用最多拉取10000个关注者的OpenID,可以通过多次拉取的方式来满足需求。
接口调用请求说明
http请求方式: GET(请使用https协议)
https://api.weixin.qq.com/cgi-bin/user/get?access_token=ACCESS_TOKEN&next_openid=NEXT_OPENID
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
next_openid | 是 | 第一个拉取的OPENID,不填默认从头开始拉取 |
返回说明
正确时返回JSON数据包:
{"total":2,
"count":2,
"data":{
"openid":["OPENID1","OPENID2"]},
"next_openid":"NEXT_OPENID"
}
参数 | 说明 |
---|---|
total | 关注该公众账号的总用户数 |
count | 拉取的OPENID个数,最大值为10000 |
data | 列表数据,OPENID的列表 |
next_openid | 拉取列表的最后一个用户的OPENID |
错误时返回JSON数据包(示例为无效AppID错误):
{"errcode":40013,"errmsg":"invalid appid"}
粉丝数据存在数据库rh_mp_friends中:
显示粉丝列表:
public function index($tagid=''){
$mp=$this->mp;
$where['mp_id']=$mp['id'];
if(!empty($tagid)){
$where['tagid_list']=array('like',"%{$tagid}%");
}
$data=M('mp_friends')->where($where)->field('id,headimgurl,nickname,subscribe_time,openid,tagid_list')->order()->select();
$tag=M('tags')->where($where)->select();
$this->assign('tag',$tag);
$this->assign('friendList',$data);
$this->display();
}
同步粉丝列表:
public function sycfriends(){
$mp = $this->mp;
$where['mp_id'] = $mp['id'];
M('mp_friends')->where($where)->select();
include APP_PATH . 'LaneWeChat/lanewechat.php';
$user = UserManage::getFansList();
$openids = $user['data']['openid'];
$arr = array();
foreach ($openids as $value) {
$row = array();
$row['openid'] = $value;
$row['lang'] = 'zh_CN';
$arr[] = $row;
}
// print_r($arr);
// exit;
$ret = UserManage::getManyUserInfo($arr);
// print_r($ret);
// exit;
if(isset($ret['user_info_list'])){
$data = $ret['user_info_list'];
// print_r($data);
// exit;
$mp = $this->mp;
$model = M('mp_friends');
$where['mp_id'] = $mp['id'];
$model->where($where)->delete();
foreach ($data as &$value) {
$value['mp_id'] = $mp['id'];
$value['tagid_list'] = implode(',', $value['tagid_list']);
}
M('mp_friends')->addAll($data);
}
$this->success('同步成功',U('index'));
}