腾讯官方文档称,2021年12月27日之后【获取用户基本信息】接口不再输出头像、昵称信息,原文如下 :
经测试发现确实如此,这突然变更规则无疑给很多开发者带来烦恼,甚至有些系统直接崩溃,此次变更规则后:
1、通过后台接口无法再获取用户头像、昵称信息,涉及受影响的业务有:关注后后台获取用户信息、后台定时刷新用户信息等业务场景
2、用户主动打开网页通过网页授权后获得access_token(user_info方式,非静默授权),使用此access_token获取用户信息不受影响,可正常获取用户头像昵称信息
也就是说,此次改版后只能在前台网页必须由用户主动授权才能获取头像和昵称,后台调用接口无法再获取到头像和昵称了。即:微信接口调用凭据access_token有两种,一种是用户在微信网页上点击授权换取的access_token,另一种是后台通过appKey和appSecrect换取的access_token,以前两种access_token都可以获取到头像和昵称,而现在只有前者能获取到(并且不能是静默授权)。
两种API如下:
【可获取头像、昵称的API,使用用户授权account_token】
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
【不可获取头像、昵称的API,使用后台account_token】
https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN
改进方案:
方案1:对于静默授权+后台接口方式的业务需要将程序改为前台授权方式,即:前台OAuth授权跳转链接参数中的scope改为user_info(需用户主动点击同意),而不是snsapi_base(静默授权)
方案2:对于关注后获取用户信息的业务,可以通过发送消息附带链接,引导用户点击链接进去授权获得用户信息