25.5.1 同步用户关注列表
对于之前关注的用户,在系统开发完成之后,需要将其同步到系统中。同步用户列表的代码如下。
1 public function updateList{ 2 // 获取微信用户列表 3 $weixin = new /weixin/Wxapi; 4 $result = $weixin->get_user_list; 5 6 // 获取本地用户列表 7 $openidlist = Db::name('user')->column('openid'); 8 // dump($openidlist); 9 10 // 计算未更新用户列表11 $intersection = array_diff($result["data"]["openid"], $openidlist);12 13 // 同步入库14 $data = array;15 foreach ($intersection as &$openid) {16 $data = array('openid'=>$openid);17 }18 $insertresult = Db::name('user')->insertAll($data);19 20 $this->success('更新了'.count($intersection).'个用户','index');21 }
在上述代码中,先获取微信用户列表,该接口中使用了递归方式,当用户数超过1万个时,再次调用下一组1万个用户的OpenID列表,以此类推。
接下来获取当前系统中存储的用户OpenID列表,并使用array_diff函数计算出系统中未存储的用户OpenID列表。
最后使用Db类的insertAll方法将新用户记录一次性插入数据库表。