目录
第一章 了解趋势
随着小程序的发展,我们发现现在小程序的api,wx.getUserProfile与wx.getUserInfo这两个接口已经不能满足获取到用户的基本信息了,如下图官方做出的解释:
第二章 准备工作
2.1 注册微信小程序
2.2 获取小程序appId与小程序密钥
第三章 获取微信用户信息
3.1 用户登录
- 解释:通过该方法的目的就是为了获取code(登录凭证,有效时间5分钟)
- 作用:后续通过api接口请求,获取用户登录态信息
- 用法:
html部分——
<template>
<view>
<button @click="getLoginMethods()">调用wx.login方法</button>
</view>
</template>
js部分——
getLoginMethods() {
uni.login({
timeout: 6000,
success: (res) => {
console.log('success:login方法返回的值:', res)
},
fail(err) {
console.log('fail:login方法返回错误:', err)
},
complete(val) {
console.log('complete:login方法完成后返回值', val)
}
})
}
- 返回结果
- 该code的有效期只有5分钟
3.2 获取用户信息的两个方法
3.2.1 方法一(wx.getUserInfo)
- 使用wx.getUserInfo请求用户授权获取用户信息
getUserInfoMethods() {
uni.login({
timeout: 6000,
success: (res) => {
console.log('success:login方法返回的值:', res)
uni.getUserInfo({
success(userInfo) {
console.log('用户信息:', userInfo)
}
})
},
fail(err) {
console.log('fail:login方法返回错误:', err)
}
})
}
- 输出结果
- 目前微信小程序返回的用户信息是默认灰色头像以及"微信用户"的昵称,其他信息都不会返回,小编后续会出微信头像与微信用户昵称怎么获取的流程。
3.2.2 方法二(wx.getUserProfile)
getUserInfoMethods() {
uni.login({
timeout: 6000,
success: (res) => {
console.log('success:login方法返回的值:', res)
if (uni.getUserProfile) {
uni.getUserProfile({
desc: '授权登录',
success(userInfo) {
console.log('用户信息:', userInfo)
}
})
} else {
console.log('方法不可用!')
}
},
fail(err) {
console.log('fail:login方法返回错误:', err)
}
})
}
3.3 获取用户信息(现在常用)
html部分——
<template>
<view>
<button @click="getUserInfo()">获取用户登录信息</button>
</view>
</template>
js部分——
这里需要获取微信小程序的appid与密钥,在准备工作有说如何获取
getUserInfo() {
uni.login({
success (res) {
console.log('login', res)
// 通过uni.login获取到临时登录凭证code
if (res.code) {
//发起网络请求
uni.request({
url: 'https://api.weixin.qq.com/sns/jscode2session',
data: {
appid: '微信小程序appid',
secret: '微信小程序密钥',
js_code: res.code, // wx.login登录code
grant_type: 'authorization_code' // 固定赋值
},
success(res) {
console.log('res', res)
_this.openid = res.data.openid
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
},
- 返回的结果:
- 至此,现在最常使用的获取用户信息的方法就结束了,由于微信小程序的调整,目前用户的详细信息已经被加密,具体是拿不到的,所以只需要拿到唯一识别的openid即可
第四章 获取接口调用凭据 access_token
- 注意文档,是post请求
- 请求参数
html部分——
<template>
<view>
<button @click="getAccessToken()">获取access_token信息</button>
</view>
</template>
js部分——
getAccessToken() {
uni.request({
url: 'https://api.weixin.qq.com/cgi-bin/stable_token',
method: 'POST',
data: {
appid: '微信小程序appid',
secret: '微信小程序密钥',
grant_type: 'client_credential' // 看文档直接赋值即可
},
success(res) {
console.log('access_token', res)
}
})
},
- 结果:已经获取到access_token,保存即可,后续调用接口需要使用该access_token的值