程序获取用户信息步骤
点击参考微信文档中的授权首先程序先向用户申请访问哪些权限用户做出选择后返回给程序程序携带权限访问服务器如果用户允许则返回信息如果用户为允许则不返回自定义函数getUserRun
为获取用户的微信运动数据 页面加载调用此函数函数中执行下面操作
1. 获取用户的权限设置
wx.getSetting(object,object)获取当前用户的设置,返回值就是小程序向客户请求过的权限(包括允许和未允许的)函数中的success是成功后执行 输出内容中的authSetting为空对象 说明当前用户没有对改程序开放任何权限2.判断用户是否对微信运动步数进行授权
当用户对微信运动步数授权后 setting中的成功返回值authSetting中的对象应该包括scope.werun可以根据返回值authSetting对象中是否包含scope.werun而进行判断2.1 如果用户还没有授权
通过调用wx.authorize(object,object)立刻弹窗询问是否授权小程序使用某项功能或获取用户的某些数据,如果用户已经授权则不会弹起scope的参数值就是要申请的权限用户允许后执行sucess函数
调用自定义方法获取用户微信运动数据 用户不允许则执行fail函数 在函数中 通过wx.showModal弹出提示框 title为标题 content为内容 用户确认后提示框消失
2.2 如果用户已经授权
调用自定义方法(此方法就是获取用户微信运动的数据)3. 自定义函数读取用户微信运动数据
//定义函数读取用户微信运动数据getWeRunData() {wx.getWeRunData({success(res) {console.log(res)}})},
通过调用wx.getWeRunData(Object object)接口获取用户过去三十天微信运动步数。需要先调用 wx.login 接口。步数信息会在用户主动进入小程序时更新。
但是返回的数据出于安全是加密的 通过如下方式进行解密
重新编译自定义函数代码
//定义函数读取用户微信运动数据getWeRunData() {wx.getWeRunData({success(res) {//由于数据是进行加密的所以我们通过条用云函数的方式进行解密wx.cloud.callFunction({name: 'deswerundata',data: {weRunData: wx.cloud.CloudID(res.cloudID) // 这个 CloudID 值到云函数端会被替换}}).then(res=>{console.log(res)})}})},
其中name的值就是我们要调用的云函数名称data就是我们要传递的数据.then就是请求完云函数后我们要得到返回的数据
创建云函数deswerundata
编辑此云函数中的index.js中的代码为
// 云函数入口文件const cloud = require('wx-server-sdk')cloud.init()// 云函数入口函数exports.main = async (event, context) => {let weRunData = event.weRunDatareturn {weRunData}}
将云函数重新上传 重新编译即可