一般说,微信公众账号运营一段时间,会积累一定数量的用户,一些用户很少会主动发送信息,我们可以通过微信提供的高级接口来获取用户列表,对这些用户(不管是活跃用户还是潜水用户)进行有效的管理,将公司的公众帐号的营销效果做到最后价值。
因此我们看看用户管理接口 获取用户列表 是如何使用到实际开发中的。
获取用户列表接口,可以一次性将公众号的所有用户信息拉取下来
公众号可以通过接口获取帐号的关注者列表,关注者列表由一串openid(加密后的微信帐号,每个用户的openid是一样的)组成。
一次最多拉取10000万个关注者的openid,如果不够,可以通过多次拉取的方式来满足需求。
先来查看下手册:
我们先到数据库里面创建一张表:
我们来写个list_user.php的文件,来让数据通过for循环然后遍历进数据库,代码如下所示:
<?php header("Content-Type:text/html;Charset=utf-8"); require_once "common.php"; require_once "get_token.php"; //链接数据库 $connect = mysql_connect('localhost','root','root') or die('数据库连接失败'); mysql_select_db('wxdb',$connect); mysql_query('set names utf8'); //因为默认是从1开始取的,所以&next_openid=NEXT_OPENID"这里可以不需要 $url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token={$access_token}"; $res2 = http_request($url,null); //进行惊悚解码 $res2 = json_decode($res2); $res2 = $res2->data->openid; //取出有多少个openid $openid_num = count($res2); //遍历出openid for($i=0;$i<$openid_num;$i++){ //这时我们通过openid来获取用户的信息 $fromUsername = $res2[$i]; $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$access_token}&openid={$fromUsername}"; //发送请求 $res = http_request($url,null); $res = json_decode($res); //获取我们所需要的各种信息 $nickname = $res->nickname;//用户昵称 $sex = $res->sex;//性别 $country = $res->country;//国家 $province = $res->province;//省份 $city = $res->city;//城市 $address = "{$country}{$province}{$city}"; $subscribe_time = $res->subscribe_time;//用户关注的时间 $sjc = date('Y-m-d-H:i:s'); $groupid = $res->groupid;//用户所在的分组ID $headimgurl = $res->headimgurl;//用户头像 //利用substr函数获取小头像地址 0代表从第0个开始获取,-1代表去掉最后一个 $samll_head_imgurl = substr($headimgurl,0,-1).'132'; //数据库进行插入 $sql = "insert into userinfo2 (id,openid,nickname,headurl,address,sex) values(NULL,'{$fromUsername}','{$nickname}','{$samll_head_imgurl}','{$address}','{$sex}')"; mysql_query($sql); echo "保存成功第{$i}个<br />"; }
然后进行访问list_user.php
然后再进数据库看见下是否入库了,
我明显,我们的代码已经成功入库,证明我们测试成功YES