1. 程式人生 > >微信公眾號(二)獲取使用者列表

微信公眾號(二)獲取使用者列表

繼上篇

	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;
		}
	}