威芯小程序与公众号获取用户基本信息列表操作思路

温馨提示:文章均来自网络用户自主投稿,风险性未知,涉及注册投资需谨慎,因此造成损失本站概不负责!

公司先推出小程序项目,后开发公众号。 公司接到上级安排后,实现了小程序的开通任务。 阅读文档后发现,只要同一个开发者仗号绑定小程序和威芯开放平台公众号,就会有一个维一的unionid。 这个unionid是腾讯产品共享的。 这个unionid是我们连接的关键。

先说一下思路:

1、威芯小程序绑定公众号后,小程序调用wx.login()方法后会自动获取unionid,公众号根据管方文档获取用户基本信息后也会得到相同的unionid、openid、昵称。 。 。 及其他相关信息;

2、用小程序获取的unionid更新数据库,新建数据库表A,用于存储公众号获取的unionid等信息; (注:这一步,因为我们公司的原因,我们的公众号之前已经有人关注过,所以之前我是通过公众号获取关注用户列表获取openid列表,循环openid列表,调用公众号获取用户基本信息列表后,存储数据库表A。

图片[1]-威芯小程序与公众号获取用户基本信息列表操作思路-汇一线首码网

3、通过响应关注/取消关注公众号的事件来添加和删除数据库表A,以保持数据的新鲜度;

4. 进行关联查询。 此时我们会发现通过unionid关联表后就实现了数据互通

口才说了很多,但其实公众号的两个接口非常重要(1.关注/取消关注事件对应的接口2.获取用户基本信息的接口)

关于公众号的安全域名配置、服务器域名配置和token获取,这里就不讲了。 百度一下就有很多。

代码:

苐一步获取公众号用户的openid列表操作,根据opneid查询用户的基本信息,并存入数据库(因为我们公司公众号只有1000+关注者,所以我只调用一次获取关注列表的接口)

//主要代码逻辑
//获取token	
AccessToken accessToken=wxUtils.getAccessToken();
	String url="https://api.weixin.企鹅.com/cgi-bin/user/get?access_token="+accessToken.getAccessToken()+"&next_openid=";//获取所有用户openid
ONObject jsonObject = httpRequest(url, "GET", null);  
	try {
		if(jsonObject.getString("errcode")!=null){
		}
	}catch(Exception e) {
	}
	WeixinUserList userList = (WeixinUserList)ONObject.toBean(jsonObject, WeixinUserList.class);
	if(null==userList) {
			return "无用户";
	}
	userList.getTotal();//关注总人数
	//用户openId 列表
	WxOpenidInfo wxOpenidInfo=userList.getData();
	List openIdList=null;
	if(null!=wxOpenidInfo) {
		openIdList=wxOpenidInfo.getOpenid();//公众号返回的openid列表数据	
		if(null!=openIdList && openIdList.size()>0) {
		for(String opendid:openIdList) {
            //获取用户的基本信息(unionid机制)
			 url="https://api.weixin.企鹅.com/cgi-bin/user/info?       access_token="+accessToken.getAccessToken()+"&openid="+opendid+"&lang=zh_CN";//通过openid获取用户信息
			 jsonObject = httpRequest(url, "GET", null); 
			WeixinUser wxUser=(WeixinUser)ONObject.toBean(jsonObject, WeixinUser.class);
            //进行数据库表A的储存操作	
			int row = gzhService.addGZHUser(wxUser);
			}
		}
}
			
			
			
			
/**
 * 用户列表  
 * @author 一叶知秋plus
 *
 */
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;
	    }
	 
	}
	
	
/**
 * 用户基本信息  
 * @author 一叶知秋plus
 *
 */
	
	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 tagid_list;//用户被打上的标签ID列表
	private String unionid;  //用户的unionid
	private String headimgurl;//用户的头像
	
	
	
	
	public String getHeadimgurl() {
		return headimgurl;
	}
	public void setHeadimgurl(String headimgurl) {
		this.headimgurl = headimgurl;
	}
	public String getUnionid() {
		return unionid;
	}
	public void setUnionid(String unionid) {
		this.unionid = unionid;
	}
	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 getTagid_list() {
		return tagid_list;
	}
	public void setTagid_list(List tagid_list) {
		this.tagid_list = tagid_list;
	}
}
public class WxOpenidInfo {
	private List openid;
	 
    public List getOpenid() {
        return openid;
    }
 
    public void setOpenid(List openid) {
        this.openid = openid;
    }
}
			

温馨提示:本文最后更新于2023-07-24 22:21:24,某些文章具有时效性,若有错误或已失效,请在下方联系网站客服
------本页内容已结束,喜欢请收藏------
© 版权声明
THE END
喜欢就支持一下吧
分享