在后台管理系统里显示微信用户头像的问题

2018-02-28 09:45:09 +08:00
 edison111cry

微信用户第一次访问 H5 页面时会把用户的 openid 以及相关的昵称,用户头像存储到数据库里。 管理后台显示用户信息时直接从数据库里读取出来,但是时间长了微信更换头像了,存的旧的头像链接便失效了,想请教一下大家怎么处理后台显示微信用户信息的问题? (如果在后台显示时每次都通过 openid 调用微信的接口获取到到信息来展示,感觉上又没有这个必要。大家都是怎么处理的?)

3051 次点击
所在节点    问与答
6 条回复
zcdll
2018-02-28 10:08:10 +08:00
如果用户修改了头像,并不是马上失效的,而且有的时候貌似这个时间还挺长。

你可以试试,1 - 把获取到的头像自己保存一份,用自己的链接。2 - 定期更新头像。
odirus
2018-02-28 10:12:25 +08:00
我们一般首次登陆时 scope = snsapi_userinfo,获取到 unionid, openid, 头像等,然后记录数据库

下次登陆时 scope = snsapi_base 获取到 openid 就可以用来登录了

---------------------------------------------------------------------------------------

你说的这种情况,完全可以设置一个刷新微信用户信息的时间间隔,超过一定时间再访问网页时,使用 scope = snsapi_userinfo 方式进行重定向授权,这样就可以解决用户信息不同步的问题了
edison111cry
2018-02-28 10:17:12 +08:00
@zcdll 嗯,你的意思是在后台(比如说每隔两周)把所有的用户头像都更新一遍 这样吗?因为我看微信文档也没有相关的用户更新头像回调之类的说明
whypool
2018-02-28 10:23:22 +08:00
有个 token,一个月有效期,用这个可以刷新用户信息
和基础的 accesstoken 不一样
zcdll
2018-02-28 10:31:27 +08:00
@edison111cry 嗯,感觉你的问题主要是,怎么分辨用户是否更新了头像。要是每个对比的话也需要时间,我之前做的对头像的依赖不大,获取到了以后就不更新了。看你的需求吧,如果有必要,就得想办法更新数据库了。
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=' 这个接口去获取最新的用户信息。不需要用户参与。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/433362

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX