Cravatar 开放公测,彻底解决 Gravatar 无法访问的问题

199 次阅读

什么是 Gravatar

Gravatar 是 WordPress 母公司 Automattic 推出的一个公共头像服务,也是 WordPress 默认的头像服务。但因为长城防火墙的存在,Gravatar 在中国时不时就会被墙一下,比如本次从 2021 年 2 月一直到 8 月都是不可访问状态。

在以往的时候,国内的 CDN 厂商和博客主会使用反代的方式确保 Gravatar 在国内能正常访问,但老实说,这种方式很容易就会吃牢饭。不妨想一下,Gravatar 为什么会墙?一定是出现了某些涉政、涉黄之类的违法内容。这些国家禁止的东西,我们将其反代入国内,可谓是细思极恐。同时反代也只能解决头像访问的问题,而解决不了头像上传的问题。

介绍 Cravatar

好在,现在我们有了 Cravatar 。

Cravatar 是 WordPress 本土化计划中生态基础设施的一部分,就和我们构建的翻译平台及应用市场一样。

Cravatar 100% 兼容 Gravatar 的头像 API,这意味着你可以简单的通过替换域名的方式来使用 Cravatar 接替 Gravatar 。同时,作为对中国互联网环境的特别适配,Cravatar 支持在用户未设置 Cravatar 头像及 Gravatar 头像时匹配 QQ 头像 (仅限于使用 QQ 数字邮箱的用户),这一切是自动进行的,用户对此无感知。其带来的效果是:经过三级匹配 (Cravatar 头像->Gravatar 头像->QQ 头像) 后,大约 70% 的访客都会得到准确的头像。

此外,我们还会对所有头像进行人工审核,确保不会出现害群之马。

总的来说,Cravatar 在 100% 兼容 Gravatar 的同时还有以下优势:

  1. 更快的速度 – 服务完全架设并运行在中国大陆境内,提供毫秒级的响应速度
  2. 更高的稳定性 – 所有头像经人工审核确保不会出现违规内容,也就不会出现时不时访问不了的情况
  3. 更高的头像展现率 – 在自有头像库的基础上囊括了 Gravatar 和 QQ 的头像库,可谓集天下之大成

如何使用

如果你想为你的 WordPress 接入 Cravatar 可以直接将以下代码加入你的主题或插件中 (任何开发者都可以将该服务集成到自己的产品里,无需事先通知):

if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
*替换 Gravatar 头像为 Cravatar 头像
*
* Cravatar 是 Gravatar 在中国的完美替代方案,你可以在 https://cravatar.cn 更新你的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com'
);
return str_replace( $sources, 'cravatar.cn', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
*替换 WordPress 讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default']='Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}

如果你使用其他系统,想集成 Cravatar 头像,则可以参考我们的开发文档:https://cravatar.cn/developers

如何上传自己的头像

在 Cravatar 官网:https://cravatar.cn  注册账号 (与 litepress.cn 账号互通) 即可添加和更换头像,头像修改后会在 5 分钟内刷新缓存并生效。

附录

Cravatar.cn 目前作为一款主题运行在 LitePress.cn 平台之上,你可以在 GitHub 上找到其源码:

https://github.com/litepress/litepress.cn/tree/main/wp-content/themes/cravatar

你可以随意复制、分发、重构整个 LitePress 相关项目的任何代码,而不用付出任何成本或承担任何法律风险。

QQ 头像匹配服务至少未来 3 天内不可用,因为用于从邮箱哈希值匹配 QQ 号而生成的彩虹表达到了 600G,需要一定时间导入数据库。

QQ 头像自动匹配已可用

讨论贴:https://litepress.cn/forums/topic/21004

@赞助商推广位

发表评论