标签:"gravatar"

DWRA:Random Avatar Service

DWRA是一个简单的随机头像服务端,对外提供与gravatar几乎一致的随机头像输出功能,支持随机头像和静态解析固定头像,可以作为被墙的gravatar的替代方案。DWRA还支持简单的服务授权验证机制,可以防止第三方未经授权调用服务。

gravatar被墙:构建自己的随机头像服务(中)

OK,上一篇我们一起将wp_identicon剥离出来作为自己的随机头像引擎,此篇我们要将其改造成一个直接返回图片数据的单独服务,再为其增加限制缓存数量的函数,并为其增加静态解析的功能,像这样:https://function.dreamingwish.com/gravatar/c78fccb17b567e263d0bd863e776d77a?s=80&d=identicon&rating=pg&auth=7830559911c151d8b45ad606ec2d40b25b453d32aa25ebc8d4ddc53959497257&ak=e15b48f0 实际上我采取的静态解析非常简单(仅适合访问量不大的情况):将传入的字符串先进行hash(或者假设传入的字符串已经hash过)。先从静态解析目录中找到hash所对应的图片文件。如果找到这样的文件,直接返回此文件的内容。如果找不到,则正常调用wp_identicon进行随机生成。但是重点根本就不是这个简单的要死的逻辑,而是怎么修改wp_identicon的代码对吧?让我们来修改wp_identicon的函数:// init random seed
if ($random

gravatar被墙:构建自己的随机头像服务(上)

gravatar老早就被墙了,以前很好用的随机头像服务随之完蛋,网上搜罗一番,找到了一些解决的办法:使用gravatar的https服务,试过一段时间,发现不稳定,有时候会连接不上,而且可能很快继续被墙。使用duoshuo的镜像,参数和结果跟gravatar一样,这个还算靠谱,但是有很少的情况下也会刷不出来,至于原因我已经懒得研究了,因为我决定自己建立随即头像服务。还有一种比较复杂的方法,大家网上搜索gravatar七牛镜像,看起来稳定性还不错,不过既然要创建一个服务自己用,我更喜欢创建在自己的服务器上 :)那么我来简单教大家建立自己的类gravatar随机头像服务,不过这种方法是需要一点php基础的。首先下载wp_identicon插件,解包拿出wp_identicon.php文件,额,当然这里你直接把这个插件装上用也是可以的,不过我的博客前端已经脱离wordpress,所以直接装上去除了能提醒我更新以为,并没有什么鸟用。接下来我们要把wp_identicon的核心算法函数和类剥离出来,wp_identicon最重要的两个类是:class identicon
class identicon_mersenne_twister
接下来找到文件头部的两个define,这是两个路径,一个用来拼接出图片网址路径,一个用来拼接图片的本地路径:define('WP_IDENTICON_DIR', str_replace('\\','/',preg_replace('@.*([\\\\/