微信小程序开发-获取微信用户个人信息

 

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 

属性类型默认值必填说明
langstringen显示用户信息的语言
descstring 声明获取用户个人信息后的用途,不超过30个字符
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

其中 desc 是必须要填,用于说明获取用户个人信息的用途。

2.2 object.lang 的合法值

说明最低版本
en英文 
zh_CN简体中文 
zh_TW繁体中文 

2.3 object.success 回调函数

参数

Object res

属性类型说明最低版本
userInfoUserInfo用户信息对象2.10.4
rawDatastring不包括敏感信息的原始数据字符串,用于计算签名2.10.4
signaturestring使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密2.10.4
encryptedDatastring包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密2.10.4
ivstring加密算法的初始向量,详见 用户数据的签名验证和加解密2.10.4
cloudIDstring敏感数据对应的云 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、运行结果

运行结果如下所示:                              点击 ”获取用户基本信息“按钮:                点击  ”允许“ 按钮:                   点击 ”拒绝“ 按钮

                

好了到这里获取微信用户个人信息的功能基本是实现了。

如果文章对你有所帮助动动你的小手点个赞哟~

 

下一篇文章记录一下怎样获取微信手机号码。

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值