最近好多同学在学习石头哥小程序课程的时候,遇到了下面这样的问题,在小程序授权获取用户头像和昵称时,获取到的是下面这样的。

到底是什么原因导致的呢,去小程序官方文档一看,又是官方改规则了。

点进去一看,原来小程序官方,在2022年11月8日以后,又把获取用户头像的接口回收了

再看看网友的评论,真是骂声一片啊。

真是我的地盘我做主啊,我说怎么样就怎么样啊。有点店大欺客的嫌疑了。。。 但是呢,作为我们苦命的小程序开发者,官方虐我千百遍,我待官方如初恋。没办法啊,我们还是得用小程序不是吗。。。。
所以石头哥这里给大家提供几种解决方案。

一,临时解决方案,降低基础库

其实官方又说一句话,对于低于2.27.1版本的小程序,还是可以使用授权接口的,也就是说,只要我们的基础库低于2.27.1,就可以接着获取用户头像的。

带着试一试的心态,石头哥就去把基础库调低为2.27.0

调低后,再试下获取头像功能,果然还是可以获取到的。

这里要注意一点,调低后,要记得清空下缓存

虽然这个方法可以解决,但是只是一时的,因为小程序官方一直有bug,所以官方会一直升级基础库的,如果我们使用这个方法太久,就会导致基础库版本落后太多,这样的话,后续就会因为基础库太低,导致一些官方新功能无法使用。所以这个方案只是临时解决方案。

二,(不推荐)官方方案,头像昵称填写能力

官方为了补偿我们呢,给我们提供了一个新的方案。

虽然这个方案可以获取到头像和昵称,但是呢。。。。。

我们这里是可以获取到用户头像,但是官方给我们返回的这个头像是一个临时的链接。

既然是临时链接,就意味着这个链接用不了太久就会失效了

如果我们想用这个头像作为商品评论里的头像,那么就不能用这个临时链接了。所以官方出的这个有点鸡肋,基本上没有什么大用。
有用的也就是这个获取昵称。

就是在填写昵称的时候,给input设置一个属性,就可以选用微信昵称或者自己输入新的昵称。

所以如果你只需要使用用户昵称不使用头像,可以用这个方法。

三,(推荐)自己存储头像和昵称

既然官方老是变来变去,还不给我们可以长久使用的头像链接,那么我们就来自己存储用户头像,让这个头像是长久可以用的链接。所以我们这里需要自己开发后台存储头像。有以下几种方式
1,用Java或者php开发后台,存储头像和昵称
2,用云开发的云存储存储头像生成永久链接

我这里推荐大家使用云开发,因为云开发比较简单,当然大家如果会Java或者php开发,可以自己开发后台用于头像的上传和存储。

获取昵称和头像

首先看下效果图

可以看到这里可以获取到昵称,并且可以自己自定义头像,这个自定义的头像存到云存储里,返回的是一个永久的可以使用的链接。

这样我们后面再使用这个头像和昵称,就是永久的了,并且也不用再管小程序官方是不是又改规则了。
我把对应的代码,完整的贴出来给到大家
wxml

<view class="item"><view class="tip">编辑用户昵称</view><input type="nickname" bindinput="getName" />
</view>
<view class="line"></view>
<view class="item" bindtap="chooseImage"><view class="tip">点击修改头像</view><image src="{{avatarUrl}}" />
</view>

wxss样式

.item {display: flex;align-items: center;justify-content: space-between;margin: 15rpx;border-bottom: 1rpx solid gray;padding-bottom: 20rpx;
}.tip {font-size: 44rpx;margin: 20rpx;color: red;
}.item image {width: 200rpx;height: 200rpx;border-radius: 10rpx;margin: 10rpx 30rpx;}.item input {flex: 1;border: 1px solid gray;border-radius: 20rpx;padding: 5rpx 15rpx;
}

js逻辑代码

const app = getApp()
//这里要注意,初始化云开发,下面env要换成你自己的
wx.cloud.init({env: 'cloud1-3g3xyg1a9ff9d8fe'
})
const db = wx.cloud.database()
Page({getName(e) {this.setData({name: e.detail.value})},//选择图片chooseImage() {wx.chooseMedia({count: 1,mediaType: ['image'],sizeType: ['compressed'], //可以指定是原图还是压缩图,这里用压缩sourceType: ['album', 'camera'], //从相册选择success: (res) => {console.log("选择图片成功", res)let avatarUrl = res.tempFiles[0].tempFilePaththis.setData({avatarUrl: avatarUrl})wx.cloud.uploadFile({cloudPath: new Date().getTime() + '.png',filePath: avatarUrl, // 文件路径}).then(res => {let fileID = res.fileIDconsole.log("上传返回的头像永久链接", fileID)}).catch(error => {console.log("上传失败", error)})}})},
})

当然这里是基于云开发的,如果大家对云开发不了解,可以去看石头哥录得云开发视频:https://www.bilibili.com/video/BV1x54y1s7pk

然后关于最新版的获取头像和昵称,我也在二手商城小程序的视频里有做详细讲解:https://www.bilibili.com/video/BV1WA411M7Dp

后面会分享更多小程序相关的知识给到大家,欢迎点赞留言加关注。

小程序获取不到用户头像和昵称返回微信用户问题解决,即小程序授权获取用户头像规则调整的最新解决方案相关推荐

  1. 小程序获取不到用户头像和昵称返回微信用户问题解决

    临时解决方案,降低基础库 对于低于2.27.1版本的小程序,还是可以使用授权接口的,也就是说,只要我们的基础库低于2.27.1,就可以接着获取用户头像的. 带着试一试的心态,把基础库调低为2.27.0

  2. 微信登录用wx.getUserProfile获取用户信息获取的是灰头像,用户名是微信用户, 怎么解决呢?

    这个原因是官方的问题,是有版本问题的,版本越高的话越拿不到头像啊.那个头像只能是一个匿名用户,除非你把那个测试版本降低才可以是获取到用户信息和头像. 现在新版本是不让获取用户头像,这个是跟那个腾讯官方 ...

  3. 微信小程序无法获取用户头像和昵称,微信小程序获取昵称为微信用户,头像为灰色,请使用下面方式过去

    getUserProfile(e) { wx.getUserProfile({ desc: '使用户得到更好的体验', success: (res) => { console.log(" ...

  4. php取微信名字和头像,微信小程序如何获取用户头像和昵称

    本文介绍了微信小程序如何获取用户头像和昵称,分享给大家,具体如下: 代码user.wxml: {{userInfo.nickName}} user.js //sort.js //獲取應用實例 var ...

  5. 微信小程序获取用户信息-头像、昵称......

    微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 目录 微信小程序获取用户信息-头像.昵称等,并出现弹窗提示授权 1.wx.getUserProfile文档 2.代码演示 3.演示过程(图示) ...

  6. 小程序获取用户头像和昵称

    本篇参考B站视频小程序实战项目-食疗坊_哔哩哔哩_bilibili 目录 方法一 方法二,本例以方法二展示 1.编写contact页面 2.展示效果 3.优化 编写app.js 编写 contact页 ...

  7. 微信小程序—获取用户头像、昵称

    博客概要 针对使用微信小程序时获取用户头像.昵称的三种方法,做一个简单分享~ 文章目录 博客概要 1.wx.getUserInfo接口 2.button触发 3.open-data标签 总结 1.wx ...

  8. 微信小程序获取用户信息(getUserProfile接口回收后)——通过头像昵称填写获取用户头像和昵称

    背景:最近在用uniapp写微信小程序授权登录的时候,发现项目在微信开发者工具中调试是正常的,但是在真机运行时,返回的用户数据中昵称变成了微信用户,头像变成了默认的灰底头像.接着去百度了一下发现出现这 ...

  9. 微信小程序授权登录获取用户头像和昵称时得到微信用户,记录getUserInfo转变为getUserProfile的使用修改

    首先,在微信官方更新授权操作之前,我们一直使用getUserInfo来获取微信用户的头像和昵称以及openid,这个可以参考我的上一篇博客(使用getUserInfo获取用户头像),但是微信官方弃用g ...

最新文章

  1. 代码优化实战:我又优化了一百个if else!
  2. 为什么阿里巴巴开发手册明确说明 Arrays.asList() 不能使用其修改方法
  3. 星际2虫王iA加入商汤,担任AI研究员,网友:iA vs AI ,是自己训练跟自己打吗?...
  4. Android众说纷纭分辨率
  5. 《面向模式的软件体系结构1--模式系统》读书笔记(2)--- 映像模式
  6. spring_Spring Boot应用程序浪费了内存
  7. python学精通要多久-python多久能精通
  8. mybatis的简单查询用语句吗_面试官:Mybatis中的TypeHandler你用过吗?
  9. python统计分析--2.预分析:异常值、缺失值处理
  10. 11没有源码注释_我们为什么要看源码、应该如何看源码?
  11. Windows与Linux(服务器)之间大文件传输
  12. realme GT大师版核心参数曝光:同样一亿像素主摄
  13. 一步一步SharePoint 2007之四十一:实现Search(4)——设定爬网Schedule
  14. oracle全数据管理,全面解析Oracle数据库中管理实例的方法
  15. epson r1900 清零软件_爱普生打印机清零软件
  16. oem13c安装参考
  17. php支付宝接口参数错误,php支付接口_php支付宝支付接口程序及参数详解
  18. 在微信中怎么打开微信运动?福利干货!如何在微信中开启微信运动记录每天运动步数?
  19. http协议和https协议对应的端口号
  20. Web3世界的入口Wallet使用指南

热门文章

  1. 计算机应用技术在公安,计算机应用技术在公安工作中应用探析.doc
  2. C++ 编译练习——Cmake
  3. python平均_python 算平均
  4. 关于刷机个人的一些总结
  5. mpandroidchart 设置x轴数据_Python数据分析之初识可视化
  6. PHP学习之路(二)
  7. 自研基于monolog的Laravel日志代码
  8. 软件的知识产权保护---反不正当竞争法
  9. 论坛怎么修改服务器照片大小,C# 如何修改图片的储存大小,比如10MB改为5MB。...
  10. 北京北京移动校园卡/联通校园卡/电信校园卡/对比评测及如何避免被坑