使用了无效的ssl证书,feedburner无法抓取feed的解决方法

始终割舍不下https,虽然它会多消耗一些资源,但毕竟可以让网站免于某些风暴,不过M.zdpress提出了一个我没有注意到的问题,feedburner无法抓取feed了,试了一下,果然:

Feedburner retrieve https feed using self-signed ssl error

可以看出错误的原因是使用了无效的证书(当然无效,同时猜测fb使用的是Java),从证书这边着手看来是没希望了,只能换其他的方式。

前端时间在GFans里听到过可以用Google Reader实现类似feed重烧或转发的功能,遂想用这个来试一试。

首先在GR中订阅自己的feed,然后给它打上一个tag(标签),也有的地方叫folder(目录),都一样,注意tag名最好唯一、专用,不要和其他的重复,比如我就直接用blog名作标签名称。GR不像FB,证书无效也没有关系。

然后在Settings->Tags中找到这个标签,点后面的广播图标,private就变成了public,后面的链接也随之出现了:

Share a tag in google reader

在后面的几个链接中点email a link,填上自己的邮箱,发送,会收到一封信,里面有两个链接:

• View my shared items
• Subscribe to a feed of my shared items

使用其中第二行的链接,形式类似:

https://www.google.com/reader/public/atom/user/12175931868835525338/label/Fwolf%27s%20Blog

这个地址打开基本就是你原来feed的原貌!只是多了GR的一些附加信息,比如Blog标题从Fwolf's Blog变成了"Fwolf's Blog" via Fwolf in Google Reader、文章标题后来多出了个时间,我觉得这些是可以接受的,文章的内容基本不走样。

最重要的是,这个地址虽然也是https的,但它的证书是Google用于GR的,是有效的,是FB承认的,所以在FB中修改你原来的种子,把这个地址设置为Original Feed,FB就可以正常更新了。

回顾一下,其实道理很简单,就是用GR“重烧”了一个种子,转发给FB而已。至于Blog程序自带的feed地址就不用再说了吧,其他feed阅读网站也可以使用同样的方式达到目的。

最后,感谢妖精的提示,嘿嘿。

Gregarius编辑feed时中文乱码的解决

Gregarius编辑feeds的时候,中文总是乱码(版本r1787),其实解决方法很简单的:

找到admin/channels.php这个文件,找到第900行,修改为:

//$title = htmlentities($title,ENT_QUOTES);
$title = htmlspecialchars($title, ENT_QUOTES);

这个是feed标题乱码的修正,再向下翻到Description部分,大概在988行左右,修改为:

// Description
//$descr = trim(htmlentities(strip_tags($descr), ENT_QUOTES));
$descr = trim(htmlspecialchars(strip_tags($descr), ENT_QUOTES));

这样就ok了。

原因很简单,htmlentities这个函数在转义到html标记的时候,会吧中文字符中一些字节也进行了转义,形成了乱码,而htmlspecialchars这个函数只转义特定的5个字符,不会存在这种情况。

hack之后,单引号和双引号都能输入了,但是反斜杠\仍然是不能输入的,应该是在输入处理的时候过滤掉了,或者进行了其他的转换,不过一般也用不到,就不改了。西文环境用户的处理习惯就是和我们不大一样啊。

参考