zoukankan      html  css  js  c++  java
  • 夺命雷公狗---微信开发49----获取用户列表接口(1)

    一般说,微信公众账号运营一段时间,会积累一定数量的用户,一些用户很少会主动发送信息,我们可以通过微信提供的高级接口来获取用户列表,对这些用户(不管是活跃用户还是潜水用户)进行有效的管理,将公司的公众帐号的营销效果做到最后价值。

    因此我们看看用户管理接口 获取用户列表 是如何使用到实际开发中的。

    获取用户列表接口,可以一次性将公众号的所有用户信息拉取下来

    公众号可以通过接口获取帐号的关注者列表,关注者列表由一串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

  • 相关阅读:
    【转载】.NET 2.0下简单的FTP访问程序
    [转贴]sqlserver连接oracle
    Lucene:QueryParser中操作符的疑惑
    DataSet与Xml相互转化
    SqlTransaction事务使用示例
    在非SqlServer数据库上实现MemberShip和Role功能(自定义MemberShipProvider和RoleProvider)
    c#:winform鼠标拖动窗口大小时,设定窗口最小尺寸
    ArraySegment<T>泛型结构示例
    委托示例(利用委托对不同类型的对象数组排序)
    泛型List<T>使用示例
  • 原文地址:https://www.cnblogs.com/leigood/p/5249958.html
Copyright © 2011-2022 走看看