在用uniapp开发微信小程序时,想获取用户的微信头像和微信用户名
首先想到的是
uni.login({
provider: 'weixin',
success: function (loginRes) {
console.log(loginRes.authResult);
}
});
?可是程序报错:[system] API `login` is not yet implemented
我在想是不是微信已废弃原有的微信登录api,
小程序登录、用户信息相关接口调整说明 | 微信开放社区
为优化用户的使用体验,平台将进行以下调整:
- 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID
- 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与<button open-type="getUserInfo"/>获取用户个人信息(头像、昵称、性别与地区),将直接获取匿名数据(包括userInfo与encryptedData中的用户个人信息),获取加密后的openID与unionID数据的能力不做调整。此前发布的小程序版本不受影响,但如果要进行版本更新则需要进行适配。
- 新增getUserProfile接口(基础库2.10.4版本开始支持),可获取用户头像、昵称、性别及地区信息,开发者每次通过该接口获取用户个人信息均需用户确认。具体接口文档:《getUserProfile接口文档》
- 由于getUserProfile接口从2.10.4版本基础库开始支持(覆盖微信7.0.9以上版本),考虑到开发者在低版本中有获取用户头像昵称的诉求,对于未支持getUserProfile的情况下,开发者可继续使用getUserInfo能力。开发者可参考getUserProfile接口文档中的示例代码进行适配。
于是换成uni.getUserProfile(OBJECT),
uni.getUserProfile({
desc: '用于您的页面展示用户头像与昵称',
lang: 'zh_CN',
success: res => {
console.log(res);
this.isShowLogin = false;
this.userInfo = res.userInfo;
},
fail: err => {
console.log(err.errMsg);
}
});
运行到内置浏览器后仍然显示[system] API `getUserProfile` is not yet implemented
最后发现,运行到小程序模拟器,微信开发者工具,再点击,就可以了!
友情提示:现在不能跳转到目标页面就直接要求用户授权,必须通过用户点击才可以。
威信搜索小程序:检索助手或者法务手册,查看实际运行效果。
|