微信公眾號(二)獲取使用者列表
阿新 • • 發佈:2018-12-10
繼上篇
AccessToken accessToken=wxUtils.getAccessToken(); String url="https://api.weixin.qq.com/cgi-bin/user/get?access_token="+accessToken.getAccessToken()+"&next_openid=";//獲取所有使用者openid JSONObject jsonObject = httpRequest(url, "GET", null); try { if(jsonObject.getString("errcode")!=null){ } }catch(Exception e) { } WeixinUserList userList = (WeixinUserList)JSONObject.toBean(jsonObject, WeixinUserList.class); if(null==userList) { return "無使用者"; } userList.getTotal();//關注總人數 //使用者openId 列表 WxOpenidInfo wxOpenidInfo=userList.getData(); List<String> openIdList=null; if(null!=wxOpenidInfo) { openIdList=wxOpenidInfo.getOpenid();//公眾號返回的資料 if(null!=openIdList && openIdList.size()>0) { for(String opendid:openIdList) { url="https://api.weixin.qq.com/cgi-bin/user/info? access_token="+accessToken.getAccessToken()+"&openid="+opendid+"&lang=zh_CN";//通過openid獲取使用者資訊 jsonObject = httpRequest(url, "GET", null); WeixinUser wxUser=(WeixinUser)JSONObject.toBean(jsonObject, WeixinUser.class); weixinUserService.save(wxUser); } } } /** * 使用者列表 * @author m * */ public class WeixinUserList{ private Integer total;//關注該公眾賬號的總使用者數 private Integer count;//拉取的OPENID個數,最大值為10000 private WxOpenidInfo data;//列表資料,OPENID的列表 private String next_openid;//拉取列表的最後一個使用者的OPENID private int errcode;//錯誤編碼 private String errmsg="ok";//錯誤提示 public Integer getTotal() { return total; } public void setTotal(Integer total) { this.total = total; } public Integer getCount() { return count; } public void setCount(Integer count) { this.count = count; } public String getNext_openid() { return next_openid; } public void setNext_openid(String next_openid) { this.next_openid = next_openid; } public WxOpenidInfo getData() { return data; } public void setData(WxOpenidInfo data) { this.data = data; } public int getErrcode() { return errcode; } public void setErrcode(int errcode) { this.errcode = errcode; } public String getErrmsg() { return errmsg; } public void setErrmsg(String errmsg) { this.errmsg = errmsg; } } public class WeixinUser{ private String subscribe;// 使用者是否訂閱該公眾號標識,值為0時,代表此使用者沒有關注該公眾號,拉取不到其餘資訊。 private String openid;// 使用者的標識,對當前公眾號唯一 private String nickname;// 使用者的暱稱 private String sex;// 使用者的性別,值為1時是男性,值為2時是女性,值為0時是未知 private String city;// 使用者所在城市 private String country;// 使用者所在國家 private String province;// 使用者所在省份 private String language;// 使用者的語言,簡體中文為zh_CN private List<String> tagid_list;//使用者被打上的標籤ID列表 public String getSubscribe() { return subscribe; } public void setSubscribe(String subscribe) { this.subscribe = subscribe; } public String getOpenid() { return openid; } public void setOpenid(String openid) { this.openid = openid; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getLanguage() { return language; } public void setLanguage(String language) { this.language = language; } public List<String> getTagid_list() { return tagid_list; } public void setTagid_list(List<String> tagid_list) { this.tagid_list = tagid_list; } }