微信小程序获取用户信息的方法
- 聚客宝
- 2021-08-06 16:03:58
一、获取头像及昵称,无需客户授权,可以直接获取;
<!-- 如果只是展示用户头像昵称,可以使用 <open-data /> 组件 -->
<open-data type="userAvatarUrl"></open-data>
<open-data type="userNickName"></open-data>
组件open-data 用于展示微信开放的数据
type string 开放数据类型
groupName 拉取群名称
userNickName 用户昵称
userAvatarUrl 用户头像
userGender 用户性别
userCity 用户所在城市
userProvince 用户所在省份
userCountry 用户所在国家
userLanguage 用户的语言
二、获取用户授权,登录管理
基本的步骤:
(1)检查用户是否授权获取信息
(2)没有授权,则提示打开授权
(3)获取授权信息
1、检查是否授权
wx.getSetting(Object object)
获取用户的当前设置。返回值中只会出现小程序已经向用户请求过的权限。
success function 否 接口调用成功的回调函数
object.success 回调函数
Object res
属性 类型 说明
authSetting AuthSetting 用户授权结果
//调用api判断是否已经打开授权
wx.getSetting({
success(res){
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称
wx.getUserInfo({
success(res) {
console.log(res.userInfo)
}
})
}
}
})
2、申请打开授权
<button bindtap="openSetting">打开设置页</button>
openSetting() { wx.openSetting()}
3、授权处理
wx.authorize(Object object)
提前向用户发起授权请求。调用后会立刻弹窗询问用户是否同意授权小程序使用某项功能或获取用户的某些数据,但不会实际调用对应接口。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。
Object object
属性 类型 默认值 必填 说明
scope string 是 需要获取权限的 scope,详见 scope 列表
success function 否 接口调用成功的回调函数
// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
wx.getSetting({
success(res) {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success() {
// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
wx.startRecord()
}
})
}
}
})
三、获取用户信息
wx.getUserInfo(Object object)
获取用户信息。
success function 否 接口调用成功的回调函数
object.success 回调函数
参数 Object res
属性 类型 说明
userInfo UserInfo 用户信息对象,不包含 openid 等敏感信息
rawData string 不包括敏感信息的原始数据字符串,用于计算签名
signature string 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户
信息,详见 用户数据的签名验证和加解密
encryptedData string 包括敏感数据在内的完整用户信息的加密数据,
详见 用户数据的签名验证和加解密
iv string 加密算法的初始向量,详见 用户数据的签名验证和加解密
在用户未授权过的情况下调用此接口,将不再出现授权弹窗,会直接进入 fail 回调(详见《公告》)。在用户已授权的情况下调用此接口,可成功获取用户信息。