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

标签: 

正在查看 13 个帖子:1-12 (共 12 个帖子)
  • 作者
    帖子
  • 孙锡源
    • 文章数量: 704
    @ibadboy
    楼主

    什么是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头像自动匹配已可用

    来自, 香港, 中国
    yuntian
    • 文章数量: 1
    @yuntian

    太赞了!!!!!!

    来自郑州市, 河南, 中国
    wangyr
    • 文章数量: 34
    @wangyr

    已经用上了。

    来自重庆市, 重庆, 中国
    cgq630105023
    • 文章数量: 51
    @cgq630105023

    问下  本地怎么缓存呢?

    来自北京, 北京市, 中国
    孙锡源
    • 文章数量: 704
    @ibadboy
    楼主

    老实说,我没明白你的意思。本地缓存指得啥?

    来自张家口市, 河北省, 中国
    cgq630105023
    • 文章数量: 51
    @cgq630105023

    这代码里的返回的默认图怎么修改???

    来自北京, 北京市, 中国
    孙锡源
    • 文章数量: 704
    @ibadboy
    楼主

    直接在WordPress后台,设置->讨论 中更改默认图即可:

    如果想有更细致的默认图控制的话可以参考Cravatar的开发文档自己对接。

    来自张家口市, 河北省, 中国
    zhaodehe
    • 文章数量: 10
    @zhaodehe

    已用上,目前看来一切正常,感谢付出

    来自深圳, 广东, 中国
    luminoleon
    • 文章数量: 1
    @luminoleon

    大佬厉害,直接可以用了

    来自, 本机地址, 本机地址
    cpublic
    • 文章数量: 2
    @cpublic

    头像服务貌似不稳定啊?经常提示DNS_PROBE_FINISHED_NXDOMAIN。希望改善,最重要的是稳定可靠性!

    来自, 本机地址, 本机地址
    孙锡源
    • 文章数量: 704
    @ibadboy
    楼主

    问题原因是DNSPod的付费版解析套餐过期了,已经切换DNS到免费套餐了,应该1小时左右恢复。

    这个服务最重要的是有人在全职维护,出事了随时可以找到人,我想这或许也是“稳定”的一部分。

    来自, 本机地址, 本机地址
    cpublic
    • 文章数量: 2
    @cpublic

    嗯 已推荐~

    来自, 本机地址, 本机地址
    hinven
    • 文章数量: 1
    @hinven

    他的意思是把头像缓存到网站主机本地

    来自郑州市, 河南, 中国
正在查看 13 个帖子:1-12 (共 12 个帖子)
  • 哎呀,回复话题必需登录。

话题信息