共计 1138 个字符,预计需要花费 3 分钟才能阅读完成。
导语
最近在开发小程序,记录下来一些。以前获取用户信息可以使用 wx.getUserInfo,但是后来官方进行了调整,所以要换一个思路了。
获取用户昵称、头像
这一步还是很方便的,使用小程序内置的组件就可以实现,可以获取以下的数据可以看到,能获取到的相关信息还是不少的,下面是以头像和昵称为例
<!– 头像 –>
<open-data type=”userAvatarUrl”></open-data>
<!– 昵称 –>
<open-data type=”userNickName” lang=”zh_CN”></open-data>
获取用户 UnionID
获取用户的昵称、头像很简单,但实际开发中,我们经常需要用户的 UnionID,可以使用 wx.login、wx.request 来实现。先看下官方给出的流程可以看到流程并不复杂,下面是小程序的 JS 实例
onLoad: function (options) {
var that = this;
wx.login({
success: function (res) {
if (res.code) {
// 发起网络请求, 获取用户 UnionID
wx.request({
url: ‘https://xxxx’,
data: {
code: res.code
},
success: function (res) {
if (res.data.message == ‘success’) {
// 获取数据成功
console.log(res.data.data)
}
}
})
} else {
// 获取 code 失败
console.log(‘ 登录失败!’ + res.errMsg)
}
}
});
}
下面是后端 PHP 的代码
<?php
$code = $_GET[‘code’];
$url = ‘https://api.weixin.qq.com/sns/jscode2session?appid=’ . $this->appid . ‘&secret=’ . $this->secret . ‘&js_code=’ . $code . ‘&grant_type=authorization_code’;
$userInfo = file_get_contents($url);
$userInfo = json_decode($userInfo, true);
if (!$userInfo[‘unionid’]) {
echo json_encode(array(‘data’=>”,’message’=>’error’));
} else {
echo json_encode(array(‘data’=> $userInfo[‘unionid’],’message’=>’success’));
}
获取到 UnionID 后,可以继续业务流程了。
参考资料:小程序、小程序组件、UnionID 机制说明、小程序 API。