Typecho自带Gravatar头像服务功能,但是用的人实在太少,不少人的邮箱都在QQ上。


数字邮箱

首先是搞定qq数字邮箱,通过qq号码寻找头像的接口似乎有很多:

http://q.qlogo.cn/g?b=qq&nk=2095193618&s=40
http://q1.qlogo.cn/g?b=qq&nk=365960051&s=100
http://q2.qlogo.cn/g?b=qq&nk=365960051&s=140
http://q3.qlogo.cn/g?b=qq&nk=2095193618&s=3
http://q4.qlogo.cn/g?b=qq&nk=365960051&s=640

最后的参数s可以是像素数也可以是编号

size编号大小
240px
3100px
4140px
5640px

该方法无需任何认证就能调用。

字母邮箱与域名邮箱

这里的域名邮箱指的当然是托管在腾讯邮箱服务器的域名邮箱。(经过测试似乎不支持企业邮箱与其他邮箱[就是那个收Gmail和网易等其他邮箱的功能]。)根据邮箱前端页面,发现了直接放在get参数中的邮箱和qq号(域名邮箱的uin参数是负数,具体意义就不研究了)

https://mail.qq.com/cgi-bin/getqqicon?sid=aBxDeFgH&uin=123456789&mode=newaddr&mailaddr=1@hriq.org

尝试删去sid和uin仅保留邮箱和必要参数

http://mail.qq.com/cgi-bin/getqqicon?mode=newaddr&mailaddr=1@hriq.org

yeah能用,大喜,屁颠屁颠改好头像代码,预览,欸?怎么都是坏图,看了下控制台,404?(太恶意了吧,说清楚401也行鸭)有种不祥的预感,把头像链接拷贝到隐身模式,果然不能用,只能是cookie的问题了,头疼的事情来了,后端注入cookie不麻烦,麻烦的是cookie无法自动更新,是不是就会自动过期,维护成本太高了。但搜索了许久,没有这方面的api,只得暂时作罢。目前的逻辑是将首次成功获取的结果存到数据库中,这样可以保证cookie失效后依然能够获取头像,以后每隔一段时间更新cookie和头像即可。说的好像真的 有访问量/有评论/会有人写真实邮箱 一样QAQ

隐私方面

如果不考虑邮箱隐私的话,最后直接调用就可以了。
由于没有加密使用的接口,个人建议还是在后端做这些事情。如果担心影响页面加载效率,可以自己包装一个api,用评论id或邮箱加密值等进行查询就可以了。