获取微信服务器的粉丝用户信息

        一个微信公众号可以有多个或是成百上千的粉丝关注,如果我们想要知道哪些人关注我们并展示在我们本地的网页展示出来该如何做呢?疑问

        每个用户关注公众号都会生成一个唯一的openID,我们通过openID来获取用户的信息,那么如何先来获取openID呢?我们就需要调用api借口 

                                      

其中的ACCESS_TOKEN我们需要根据实际情况来进行填写,其后的next_openid=NEXT_OPENID默认情况下从头开始拉取用户列表,若调用成功会出现如下数据

   错误时     

获取openID成功之后,我们采用批量获取用户的方法即

http请求方式: POST
https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=ACCESS_TOKEN

 提交的post数据如下

{
    "user_list": [
        {
            "openid": "otvxTs4dckWG7imySrJd6jSi0CWE", 
            "lang": "zh_CN"
        }, 
        {
            "openid": "otvxTs_JZ6SEiP0imdhpi50fuSZg", 
            "lang": "zh_CN"
        }
    ]
}

由于我们用的是tp3批量获取用户的方法不太好,于是我们重写了

 public static function getUsersInfo($openIds){
        //获取ACCESS_TOKEN
        $accessToken = getAccess_token();
        $queryUrl = 'https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token='.$accessToken;
        $json = json_encode(array('user_list'=>$openIds));
         

        return Curl::callWebServer($queryUrl, $json, 'POST');
    }

通过调用此方法获取用户的详细信息就出来了

以下是我的详细代码

<?php
namespace Home\Controller;
use Think\Controller;
use LaneWeChat\Core\UserManage;
use LaneWeChat\Core\Curl;
class GetUserInfoController extends Controller{
	 
    function index(){
	 	$mp = getCurrentMp();  //获取当前使用的公众号的基本信息
	 	$mp_id = $mp['id'];
	 	M('mp_friends')->where("mp_id=$mp_id")->delete();
		if(empty($mp)){
			$this->ajaxReturn(array('error'=>true,'msg'=>'无法使用此公众号','url'=>U('mp/index')));
			exit;
		} 
		include APP_PATH . 'LaneWeChat/lanewechat.php'; 
		$ret2=UserManage::getFansList(); // 获取用户信息列表
		$openids =$ret2['data']['openid'];
		$arr = array();
			foreach ($openids as $value) { 
				$row['openid']= $value;
				$row['lang']= 'zh-CN';
				$arr[]= $row;  
			 } 
	 
		$ret1=UserManage::getUsersInfo($arr);// 获取用户详细信息
		if (isset($ret1['user_info_list'])) {
				$data =$ret1['user_info_list'];
				foreach ($data as &$value) {
					$value['mp_id']= $mp_id;
					$value['tagid_list']=json_encode($value['tagid_list']);
				  
				 }  
				 $result=M('mp_friends')->addAll($data);  // 将获取用户详细信息添加到本地数据库中
		 }
		  $this->display('index1');
	
   }
   function index1(){
    	$friends = M('mp_friends');
		$result=$friends->select();
		$this->assign('data',$result); 
		$this->display('index1'); 

   }

 }


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值