美文网首页小程序开发
微信批量获取关注者信息列表php版本

微信批量获取关注者信息列表php版本

作者: 码上自动化 | 来源:发表于2017-11-21 14:56 被阅读3次

    最近在研究微信接口开发,由于工作需要,需要开发出公众号对应的关注者openid、昵称等信息,在网上搜了一下没发现类似文章,故有洽 将自己开发的列出来,供大家参考。

    基本流程是:1 获取关注者的openid列表 ----》2再批量获取opendid、昵称等信息。

    特列出具体代码:

    1 定义两个类:

    class obj_openid  ///定义openid对象

    {

    public $openid="";

    public $lang="";

    }

    class obj_wxuser ///定义微信用户

    {

    public $openid="";

    public $nickname="";

    }

    2  批量获取关注者openid

    public static function getUserList( $next_id = '' ){

    $access_token = self::getToken();

    $extend = '';

    if( !empty($next_id) ){

    $extend = "&next_openid=$next_id";

    }

    $url = self::API_URL . "/cgi-bin/user/get?access_token={$access_token}$extend";

    $ret = json_decode(

    curl_get( $url ),

    true

    );

    return self::getResult( $ret )

    ? array(

    'total'   => $ret['total'],

    'list'    => $ret['data']['openid'],

    'next_id' => isset( $ret['next_openid'] ) ? $ret['next_openid'] : null

    )

    : null;

    }

    3 批量获取关注者信息,包括openid、nickname等,本例只是获取这两项

    public static function batGetUserinfo(){

    $access_token = self::getToken();

    $url = self::API_URL . "/cgi-bin/user/info/batchget?access_token={$access_token}";

    $list_openid=self::getUserList();

    $count=count($list_openid["list"]);

    $i=0;

    $ret="{\"uils\":[";

    $arr_openid=array();

    $arr_wxuser=array();

    foreach ($list_openid["list"] as $value)

    {

    $i++;

    $obj=new obj_openid();

    $obj->openid=$value;

    $obj->lang="zh-CN";

    array_push($arr_openid,$obj);

    if($i%100==0)   //因为微信官方只支持一次最多获取100个人的信息,故需多次提交

    {

    $str_post="{\"user_list\":".json_encode($arr_openid)."}";

    $ret= $ret.curl_post( $url, $str_post).",";

    $arr_openid=array();

    }

    }

    if(count($arr_openid)>0)

    {

    $str_post="{\"user_list\":".json_encode($arr_openid)."}";

    $ret =$ret.curl_post( $url, $str_post)."]}";

    }

    else

    {

    $ret =$ret."]}";

    }

    $ret =json_decode($ret, true );

    return self::getResult( $ret ) ? $ret : null;

    }

    4  调用上述方法获得列表:

    $ret = weixin::batGetUserinfo();

    $count=count($ret["uils"]);

    $j=0;

    //echo $count;

    for($i=0;$i<$count;$i++)

    {

    foreach($ret["uils"][$i]["user_info_list"] as $val)

    {

    //我这里只获取了openid、nickname两项,如需获取更多请参考微信具体接口文档

    $j++;

    echo $j."        ".$val['openid']."        ".$val['nickname']."
    ";

    }

    }

    5 最终结果如下图:

    威客帮 www.vkbang.com

    相关文章

      网友评论

        本文标题:微信批量获取关注者信息列表php版本

        本文链接:https://www.haomeiwen.com/subject/rvkwvxtx.html