您好,我刚开始学习开发微信小程序,遇到下面的问题,请帮忙解决一下:
小程序ID: wx7a31c2d3c2dcba50
出问题的接口:wx.getUserProfile
返回的值
avatarUrl: "https://thirdwx.qlogo.cn/mmopen/vi_32/POgEwh4mIHO4nibH0KlMECNjjGxQUq24ZEaGT4poC6icRiccVGKSyXwibcPq4BWmiaIGuG1icwxaQX6grC9VemZoJ8rg/132"
city: ""
country: ""
gender: 0
is_demote: true
language: ""
nickName: "微信用户"
province: ""
我从网上看到,可能是接口被降级了,已经做了代码的自查,修正的代码如下,通过缓存机制,可以降低接口的调用频率
// 封装获取用户信息函数
async getUserProfile(desc) {
// 如果已经有缓存的微信用户信息,直接返回
if (this.data.wxUserInfo) {
console.log('已经有缓存的微信用户信息,直接返回')
return this.data.wxUserInfo;
}
console.log('没有缓存的微信用户信息,开始获取')
return new Promise((resolve, reject) => {
wx.getUserProfile({
desc,
lang: 'zh_CN',
success: (res) => {
// 保存到缓存和data中
const userInfo = res.userInfo;
this.setData({ wxUserInfo: userInfo });
wx.setStorageSync('wxUserInfo', userInfo);
resolve(userInfo);
},
fail: (err) => reject(err)
});
});
},
这个是我第一次自己开发小程序,还没有正式上线,属于研发阶段,对小程序的接口使用还不是很熟悉,后续会特别注意

都给你标红了点进去看下
已经废弃了,要用新方式 https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html
看它的文档即可,注意文档里的红字。
wx.getUserProfile 接口有调整,目前已经不能获取用户微信头像和昵称,默认返回的是灰色头像和“微信用户”,也没有授权弹窗了(除了旧版本微信[基础库版本低于2.27.1]和接口调整生效期前发布的小程序版本外),参考公告:https://developers.weixin.qq.com/community/develop/doc/00022c683e8a80b29bed2142b56c01
当前如果有头像和昵称获取的需要,只能让用户自己填写:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/userProfile.html
或者采用插件形式
https://blog.csdn.net/think_about_it/article/details/148851745
可以考虑降低一下基础库到2.21.4。调用wx.getUserProfile 授权弹窗的形式获取用户信息