关于微信小程序获取用户头像的问题

2018-04-06 11:11:14 +08:00
 silhouette

老哥们做小程序的时候,获取到的用户头像是直接使用微信的 avatar_url,还是先把 avatar_url 的图下载到自己的 Server 上面再使用自己的静态文件 url ?哪一种比较好呢?如果是后者,需要怎么时刻保证自己所存储的头像是最新的呢(比如说我数据库有一个“活动”表,里面记录了所有参与的用户,在视图上面要显示参与用户的头像,要实时确定这些头像是最新的)?

11610 次点击
所在节点    微信
12 条回复
oh
2018-04-06 11:18:08 +08:00
前者,
以前会缓存上级资源,是怕上级资源服务器不稳定,但微信的服务器嘛……
silhouette
2018-04-06 11:25:16 +08:00
@oh 那请问要如何保证实时显示最新头像呢?比如说我的那个“活动”表里面存储了所有参与的用户,用户表里面都有 avatar_url,但是如果这个失效了怎么办呢?(比如说某个人他更新头像后没有登录小程序,于是之前那个 avatar_url 就为空了)
em70
2018-04-06 11:50:56 +08:00
直接用微信的 URL,一年多了,没问题
GooMS
2018-04-06 12:34:38 +08:00
@silhouette 默认给个不就就行了,下次登录在更新一下
anye
2018-04-06 12:37:25 +08:00
如果希望头像能长期有效展示的话还是需要转存的,微信的头像在修改之后会失效。
xiqingongzi
2018-04-07 06:46:17 +08:00
实时最新用 open-data 组件,直接渲染到界面上
silhouette
2018-04-07 12:50:18 +08:00
@xiqingongzi 请问 open-data 是不是只能获取当前访问的用户的公开信息呢?能不能有什么方式通过 openid 这种来访问任意的某个用户的信息呢
silhouette
2018-04-07 12:51:42 +08:00
@xiqingongzi 比如说我有个活动表,里面存储了参与的用户,有什么办法能够使用 open-data 来直接获取某活动的所有用户的头像呢?
xiqingongzi
2018-04-07 13:05:10 +08:00
@silhouette #8 如果你有需要在其他用户的展示,那完全可以使用 getUserInfo 获取以后存储到数据库里调用。也可以考虑每次进入应用后获取。关于 open-data 的功能,参考官方文档。
silhouette
2018-04-07 13:09:29 +08:00
@xiqingongzi 就是说还是不能避免地要存数据库咯,这样就没办法实时获取最新的了呀
silhouette
2018-04-07 13:10:22 +08:00
@xiqingongzi 每个用户每次进入应用后获取就会导致每次进入都要查一遍数据库,感觉不太优雅啊 orz
xiqingongzi
2018-04-07 13:14:27 +08:00
@silhouette #10 如果你要在其他用户处展示,不可能不存储。或者你可以考虑使用类似 gravatar 的随机生成头像来表示。

也可以不更新,一直用最初的,这个并不重要。

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

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

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

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

© 2021 V2EX