微信小程序中获得用户的头像、年龄、城市等信息并存入数据库。
首先:微信小程序要获得用户的头像等信息必须先获得用户授权。检测用户授权可以使用wx.getSetting中的scope.userInfo来检测。如:
wx.getSetting({ success:res=>{ if(res.authSetting['scope.userInfo']){ //检测用户授权后运行代码将wx.getUserInfo放这里 } } })
另外通过wx.getSetting还可以检测其它的授权信息,如:scope.userInfo用户信息授权、scope.userLocation用户地理位置授权等可以参看微信开放文档查看。
接着:使用wx.getUserInfo获得用户信息,可以获得信息有
avatarUrl: ""//用户头像
city: ""//市
country: ""//国家
gender: 1//用户性别 0:未知、1:男、2:女
language: ""//用户语言
nickName: ""//微信名
province: ""//省
最后:将获得的信息传回服务器存入用户表中或将这些信息存入缓存以便小程序中调用。
wx.getUserInfo({ success: res => { wx.request({ url: qurl + 'test.php', data: {//发送用户信息 nickName: res.userInfo.nickName, gender: res.userInfo.gender, language: res.userInfo.language, city: res.userInfo.city, province: res.userInfo.province, country: res.userInfo.country, avatarUrl: res.userInfo.avatarUrl, openid: wx.getStorageSync('openid')//之前有将openid存到了缓存,将openid和用户信息一起回传便于对应完善用户信息 }, success: function(res) { //console.log(res.data); } }); this.globalData.userInfo = res.userInfo; if (this.userInfoReadyCallback){ this.userInfoReadyCallback(res) } } });
其实后来发现,存这些用户信息一点意义都没有,有一个openid就够用了。当然用同样的方法可以获得微信绑定的手机号码与其它一些信息。