Thursday, August 28, 2008

Blogger Feed 地址被封?

之前用 Blogger Feed 的 JSON 回调功能实现了侧边栏的“最近评论列表”,后来在把页内评论表单改成 AJAX 方式的时候,也顺便把文章下方的评论改用 AJAX 异步获取了,这样在提交评论后可以立即显示出来,而不用等待 Blogger 通过 FTP 发布重建页面。

可是最近一段时间,发现这两处的评论列表都出现了问题,显示时好时坏,到后来就直接停止工作了(一直显示 Loading Comments...)。而且,在访问了我的 blog 地址的一段时间内,无法打开 www.blogger.com 域名下任何页面。但是如果使用代理,则以上问题都不存在。所以我想大概是 Blogger 的 Feed 地址被封了。

Google 了很久也没看到有类似的案例,因为作为 Blogger 的用户,BlogSpot 和自定义域名的 blog 上,feed 是可以正常访问的。但是对于本站这种 FTP 发布的来说,就只能依赖 http://www.blogger.com/feeds/... 这个地址了。估计是国内用 Blogger FTP 发布的 Blog 并不多,也很少有依赖 feed 地址来实现功能的,所以也就没太关注这个问题吧。通过 Google 找到另一个用 Blogger FTP 发布的例子,mixfog,细研究下发现博主完全摒弃了 Blogger 的评论系统,自己实现了一套评论,可以自动获取并显示评论者留下的 URL 的 favicon,还可以回复评论,真是有心啊……

为了解决这个问题,我寻思了好久都没有找到办法。因为打开评论的 feed 地址是在 JavaScript 调用的,因此要求所有的访问者都能访问这个地址才行。我试过写一个中转的 PHP 程序在服务器上来获取内容再直接返回,可在服务器上实验时直接返回了 404,看来在国内是没办法访问到的了。

今天突然想起来如果能够在国外的网站上做这样一个中转,就可以解决了,于是问了下朋友 liuming,把中转的 PHP 页面放到他的 DreamHost 主机上,于是问题就解决了…… 在此深表谢意!郁闷了好久的问题终于解决了。

顺便说句题外话,DreamHost 上 500G 空间、可开无数独立站、每月流量限制 5T 的虚拟空间,一年才 119 美元,看样子比我在国内租的合租服务器划算多了啊…… -_-bb