微信用户第一次访问 H5 页面时会把用户的 openid 以及相关的昵称,用户头像存储到数据库里。 管理后台显示用户信息时直接从数据库里读取出来,但是时间长了微信更换头像了,存的旧的头像链接便失效了,想请教一下大家怎么处理后台显示微信用户信息的问题? (如果在后台显示时每次都通过 openid 调用微信的接口获取到到信息来展示,感觉上又没有这个必要。大家都是怎么处理的?)
1
zcdll 2018-02-28 10:08:10 +08:00
如果用户修改了头像,并不是马上失效的,而且有的时候貌似这个时间还挺长。
你可以试试,1 - 把获取到的头像自己保存一份,用自己的链接。2 - 定期更新头像。 |
2
odirus 2018-02-28 10:12:25 +08:00
我们一般首次登陆时 scope = snsapi_userinfo,获取到 unionid, openid, 头像等,然后记录数据库
下次登陆时 scope = snsapi_base 获取到 openid 就可以用来登录了 --------------------------------------------------------------------------------------- 你说的这种情况,完全可以设置一个刷新微信用户信息的时间间隔,超过一定时间再访问网页时,使用 scope = snsapi_userinfo 方式进行重定向授权,这样就可以解决用户信息不同步的问题了 |
3
edison111cry OP @zcdll 嗯,你的意思是在后台(比如说每隔两周)把所有的用户头像都更新一遍 这样吗?因为我看微信文档也没有相关的用户更新头像回调之类的说明
|
4
whypool 2018-02-28 10:23:22 +08:00
有个 token,一个月有效期,用这个可以刷新用户信息
和基础的 accesstoken 不一样 |
5
zcdll 2018-02-28 10:31:27 +08:00
@edison111cry 嗯,感觉你的问题主要是,怎么分辨用户是否更新了头像。要是每个对比的话也需要时间,我之前做的对头像的依赖不大,获取到了以后就不更新了。看你的需求吧,如果有必要,就得想办法更新数据库了。
|
6
yimity 2018-02-28 12:30:26 +08:00
用户每次新访问网页的时候用 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appid + '&secret=' + secret 和 https://api.weixin.qq.com/cgi-bin/user/info?access_token=' + accessToken + '&openid=' + openid + '&lang=zh_CN=' 这个接口去获取最新的用户信息。不需要用户参与。
|