注意:微信接口一次只能拉取10000个用户
调用的函数本例无
直接代码:
//一次性只能拉取到10000个人
public function synchronous()//dad
{
set_time_limit(0);//设置超时
//$access_token = $obj->get_access_token();
$url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token;
$ress = $this->obj->http_curl($url);
if($ress['total']>10000) { //如果人数超过10000则重复提取
$openidList[] = $ress['data']['openid'];
do{
$next_openid = $ress['next_openid'];
$str = "&next_openid=".$next_openid;
$url="https://api.weixin.qq.com/cgi-bin/user/get?access_token=".$this->access_token.$str;
$ress = $this->obj->http_curl($url);
$openidList[] = $ress['data']['openid'];
}while(!empty($next_openid));
//将分别取出的数组合并
$i = 1;
$k = $i-1;
$list = count( $openidList )
do{
$openidList[$i] = array_merge($openidlList[$k],$openidList[$i]);
$i+ = 1;
$k = $i-1;
}while( $i < $list );
$openidLists =$openidList[$list-1];
} else {
$openidLists = $ress['data']['openid'];
}
//var_dump($_SESSION);
//$ress = json_decode($res,true);
$total = $ress['total'];
header('Content-type:text/html;charset=utf8');
foreach($openidLists as $r){
$url2 = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$this->access_token."&openid=".$r."&lang=zh_CN";
$res2 =$this->obj->http_curl($url2);
//$res2 = json_decode($resa,true);
$result = M('member')->getByOpenid($r);
$tagid_list = implode(',',$res2['tagid_list']);
if(!$result) {
$data = array(
'subscribe' => $res2['subscribe'],
'openid' => $res2['openid'],
'nickname' => $res2['nickname'],
'sex' => $res2['sex'],
'language' => $res2['language'],
'city' => $res2['city'],
'province' => $res2['province'],
'country' => $res2['country'],
'subscribe_time' => $res2['subscribe_time'],
'remark' => $res2['remark'],
'headimgurl' => $res2['headimgurl'],
'groupid' => $res2['groupid'],
'tagid_list' => $tagid_list
);
$info = M('member')->add($data);
}
}
}