Thursday, May 29, 2008

用 AJAX 实现 Blogger 页内评论

之前服务器上有 Java 环境时,一直用一个自己写的 Servlet 作为中间代理来向 Blogger 的评论页面 POST 表单数据,实现页面内的评论操作,后来转挂在朋友的 IIS 服务器下,由于对 ASP 不熟,这一功能就一度取消了。现在购买了新的 Linux PHP 服务器,因此用 PHP 重新写了一个同样功能的中间代理来实现这一功能,并且实现成了 AJAX 的模式。评论内容的读取也一样通过 Blogger Feed 的 JSON 模式读取,因此提交评论后可以立即显示出来,而不用再等待 Blogger 重新生成 HTML 页面并通过 FTP 上传这一漫长的过程。(虽然实际上后台它还是不可避免的执行了这个过程。)

经过多次测试,应该可以用了。关于 Spam 的问题,以前的验证码是直接读取的 Blogger 页面的 Captcha 图片,现在 Google 改变了表单结构以至于程序已经无法自动做这个动作。所以我取消了 Blogger 自己的 Captcha 验证,自己写了个简单的加减法验证,虽然仍然不能完全杜绝 Spam,但已经比几天前测试时裸奔的情况好多了。当时夸张到一个下午一张帖子被贴了 50 多条 Spam 评论。毕竟传说 Google 的 Captcha 也已经被破解了么,同样不能完全杜绝 Spam。 ;-)

另外,Backlink 不显示的问题也修正了。不过,经过前端时间页面恶意代码事件的影响,目前似乎已经没什么 Backlink 了…… :-(

15 comments:

Anonymous said...

这个评论程序很不错啊

Anonymous said...

呵呵

Anonymous said...

我来测试一下效果

Anonymous said...

请问你如何绕过blogger评论界面的captcha验证, 把其它数据成功提交到 comment.do的?

Anonymous said...

我在我的 Blogger 设定里面已经将 Captcha 关掉了,而改用这个表单里的简单加减法来 Anti-Spam。

AAA said...

个呵呵呵

植树 said...

这个评论系统是怎么实现的啊?
可否分享一下方法?

Gregory said...

简单的讲就是用 PHP 写了个简单的程序,做这么两件事情:

- 打开 Blogger 上本帖对应的评论页面,分析 HTML 代码,取得每页随机的 Token;
- 将本页的评论内容和取得的 Token 一并 POST 给 Blogger 上处理评论发布的 URL;

之后用 AJAX 的方式通过 Feed 地址获取新的评论内容并更新页面上的数据。

植树 said...

能把那写文件发到我的邮箱吗?izhishu#gmail.com

lll9p said...

这个评论不错

ceshi said...

ceshiyixia

na said...

你的blog真漂亮!这个模板怎么没见过?

测试 said...

测试一下这个评论!

Unknown said...

louis vuitton handbags
burberry scarf
ray ban sunglasses outlet
michael kors
cheap uggs
cheap oakleys
abercrombie fitch
ugg boots
tory burch flats
lv outlet
tods outlet
michael kors handbags
michael kors outlet online
ghd flat iron
coach outlet
coach factory online
prada handbags
lebron 11
canada goose jacket
ray ban outlet
christian louboutin
chanel handbags
coach outlet
polo outlet
michael kors outlet online
ray ban canada
coach factory outlet
20150311huangqihang

mmjiaxin said...

cheap jordan shoes
north face outlet store
ralph lauren outlet
ray ban outlet
winter coats
ugg boots
lacoste pas cher
coach outlet
ralph lauren,polo ralph lauren,ralph lauren outlet,ralph lauren italia,ralph lauren sito ufficiale
the north face outlet
snapbacks wholesale
nfl jerseys
coach outlet online
ray-ban sunglasses
pandora outlet
uggs outlet
louis vuitton outlet online
ed hardy clothing
tods outlet
snow boots
mm1205