真是够变态的,微信小程序一个小小的头像和昵称接口竟然改了那么多次
不到2年,竟然调整了那么多次,这是我见到这个世界上开放平台最变态的接口能力回收之路,可以说是见证了第三方应用的各种不合理滥用,也见证了开放平台如何防止滥用。
每次微信小程序修改都会提供应用的最佳实践和开发建议,但是看来第三方小程序开发者,看来都不接受微信的建议,每次都是滥用,逼得微信不得不回收接口能力。
但是对于我们这类正规的第三方应用开发者来说,真的是改的我心累了,今天就给大家讲讲微信小程序的头像和昵称接口的修改历程。
在远古时期
小程序可以直接调用 getUserProfile 接口,然后小程序自动弹出授权,用户同意就获取 iv 和加密数据,传递给后台,后台解密获取用户头像和昵称等详细信息,下次使用 getUserProfile 接口,则无需用户同意直接获取。
2018-10-10
回收 wx.getUserInfo 接口直接弹出授权框,即用户在没有任何操作的情况直接弹出授权的登录方式将逐渐不再支持,为什么这么调整呢?
推出微信登录能力的初衷是希望:当用户使用小程序时,可以便捷地使用微信身份登录小程序。但在实际使用场景中,我们发现:很多开发者在打开小程序时直接弹出授权框,如果用户点击拒绝授权,无法使用小程序。
所以微信就将 wx.getUserInfo 接口修改为:需要点击组件后,才可以触发登录授权弹窗、授权自己的昵称头像等数据。
2021-04-28
回收 wx.getUserInfo 接口,新增 wx.getUserProfile 接口。
wx.getUserInfo 和 wx.getUserProfile 接口都能获取用户头像和昵称信息,唯一的区别,是 wx.getUserInfo 只要授权一次之后,以后都会自动获取用户的详细信息,而 wx.getUserProfile 则每次点击都需要授权。为什么这样调整:
很多开发者在打开小程序时就通过组件方式唤起getUserInfo弹窗,如果用户点击拒绝,无法使用小程序,这种做法打断了用户正常使用小程序的流程,同时也不利于小程序获取新用户。
所以微信就换个接口,每次获取用户的头像和昵称就必须要用户授权同意。所以调整之后:
但是这次更新还有一个好处就是,如果已经绑定了微信开放平台,通过 wx.login 接口获取的登录凭证可直接换取 unionID。
2021-10-20
小程序与小游戏获取用户信息相关接口不再返回用户性别及地区信息,这是因为:
根据相关法律法规,为进一步规范开发者调用用户信息相关接口或功能,保障用户合法权益,平台将对用户信息相关功能及接口进行调整,
2022-2-21
回收通过<open-data>展示个人信息的能力。
开发者在未获取用户明示同意的情况下通过 <open-data>组件 在小程序中展示用户个人信息,用户容易误以为自己的个人信息在未授权的情况下,被小程序获取。
2022-11-8
回收 wx.getUserProfile 接口。
就是明天了,新发布的接口不再支持 wx.getUserProfile 接口,微信的理由:
但实践中发现有部分小程序,在用户刚打开小程序时就要求收集用户的微信昵称头像,或者在支付前等不合理路径上要求授权。如果用户拒绝授权,则无法使用小程序或相关功能。在已经获取用户的 openId 与 unionId 信息情况下,用户的微信昵称与头像并不是用户使用小程序的必要条件。为减少此类不合理的强迫授权情况,作出如下调整。
那要获取用户的头像和昵称怎么办,微信提供了「头像昵称填写能力」,小程序可在个人中心或设置等页面使用头像昵称填写能力让用户完善个人资料:
我最新做的小程序已经按照这个方式处理,真的是够了。