1、背景
前段时间公司要求做微信小程序的开发,将我们现有移动端的功能在小程序上实现,由于之前是做Android开发的,对小程序其实不咋了解,但领导要求只能硬着头皮上了。
经过一段时间的摸索,能够做一些简单的功能,我们的小程序需要获取微信用户的基本信息以及电话号码,去做用户绑定,所以下面就把获取微信用户信息的过程在此记录一下,以便后面可以进行回顾。
微信小程序官方开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/
2、方法介绍
获取微信公开的用户信息通过 wx.getUserProfile(Object object)方法,其实在之前获取用户信息是通wx.getUserInfo(Object object)方法来实现的。
但微信方面对wx.getUserInfo接口做了调整,所以在此我们微信最新提供的wx.getUserProfile(Object object)方法来获取微信用户信息。
下面对 wx.getUserProfile(Object object) 的参数以及返回值进行简要说明。
2.1 参数 object
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| lang | string | en | 否 | 显示用户信息的语言 |
| desc | string | 是 | 声明获取用户个人信息后的用途,不超过30个字符 | |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 | |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
其中 desc 是必须要填,用于说明获取用户个人信息的用途。
2.2 object.lang 的合法值
| 值 | 说明 | 最低版本 |
|---|---|---|
| en | 英文 | |
| zh_CN | 简体中文 | |
| zh_TW | 繁体中文 |
2.3 object.success 回调函数
参数
Object res
| 属性 | 类型 | 说明 | 最低版本 |
|---|---|---|---|
| userInfo | UserInfo | 用户信息对象 | 2.10.4 |
| rawData | string | 不包括敏感信息的原始数据字符串,用于计算签名 | 2.10.4 |
| signature | string | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密 | 2.10.4 |
| encryptedData | string | 包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密 | 2.10.4 |
| iv | string | 加密算法的初始向量,详见 用户数据的签名验证和加解密 | 2.10.4 |
| cloudID | string | 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 | 2.10.4 |
上面的方法介绍以及参数解释均来源于微信小程序官方开发文档。
3、具体使用
第一步 新建一个小程序工程,建立一个测试页面,如下所示:

第二步 写代码
首先给 getuserinfo.wxml 中添加如下布局代码:
<!--pages/getuserinfo/getuserinfo.wxml-->
<view>申请获得你的公开信息(用户昵称、头像、城市等)</view>
<button bindtap="getUserProfile">获取用户基本信息</button>
<text >获取到的用户信息:</text>
<rich-text >{{userInfoStr}}</rich-text>
其次在getuserinfo.js 中添加如下实现代码:
// pages/getuserinfo/getuserinfo.js
Page({
/**
* 页面的初始数据
*/
data: {
userInfo:{},
userInfoStr :''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
//查看是否授权
wx.getSetting({
success: function(res) {
if (res.authSetting['scope.userInfo']) {
console.log("用户授权了");
} else {
//用户没有授权
console.log("用户没有授权");
}
}
});
},
getUserProfile: function(res) {
wx.getUserProfile({
desc: '用于微信账号与平台账号绑定', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (res)=>{
console.log("获取到的用户信息成功: ",JSON.stringify(res));
this.setData({
userInfo: res,
userInfoStr: JSON.stringify(res)
})
},
fail: (res)=>{
console.log("获取用户个人信息失败: ",res);
//用户按了拒绝按钮
wx.showModal({
title: '警告',
content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
showCancel: false,
confirmText: '返回授权',
success: function(res) {
// 用户没有授权成功,不需要改变 isHide 的值
if (res.confirm) {
console.log('用户点击了“返回授权”');
}
}
});
}
})
},
})
完成之后,编译运行到真机(注意一定要运行到手机真机上,不然会报getUserProfile找不到)。
4、运行结果
运行结果如下所示: 点击 ”获取用户基本信息“按钮: 点击 ”允许“ 按钮: 点击 ”拒绝“ 按钮

好了到这里获取微信用户个人信息的功能基本是实现了。
如果文章对你有所帮助动动你的小手点个赞哟~
下一篇文章记录一下怎样获取微信手机号码。
作者因公司要求进行微信小程序开发,需获取用户基本信息和电话号码。文章介绍了使用 wx.getUserProfile(Object object) 方法获取微信用户信息,包括参数说明、具体使用步骤(新建工程、写代码、真机运行),最后展示了运行结果。
1万+

被折叠的 条评论
为什么被折叠?



