在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的。对于不同公众号,同一用户的openid不同)。公众号可通过本接口来根据OpenID获取用户基本信息,包括昵称、头像、性别、所在城市、语言和关注时间。
获取用户基本信息
开发者可通过OpenID来获取用户基本信息。请使用https协议。
接口调用请求说明
http请求方式: GET
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
openid | 是 | 普通用户的标识,对当前公众号唯一 |
lang | 否 | 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语 |
在正常情况下,微信会返回JSON数据包给公众号
其中本人的粉丝管理表结构如下:
现在就可以实现后台的管理,首先是显示粉丝管理页面,并且把数据库的信息上传到前台
public function index(){
$data=M('mp_friends')->distinct ('openid')->select();
$this->assign('data',$data);
$this->display();
}
同步当前公众号的粉丝
//同步粉丝
public function sycfriends(){
$mp=getCurrentMp();
$where['mp_id']=$mp['id'];
M('mp_friends')->where($where)->delete();
include APP_PATH . 'LaneWeChat/lanewechat.php';
$ret=UserManage::getFanslist();
$openids=$ret['data']['openid'];
$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']);
}
M('mp_friends')->addAll($data);
}
$this->success('同步完成',U('index'));
}