TrackBack?有意思~

来源:百度文库 编辑:神马文学网 时间:2024/04/29 21:41:51
今天花了一些时间,把 MT 网站上的 TrackBack 入门又仔细地看了一遍,配合其规范,我用 ASP 实现了简单的 TrackBack,已经在本地和 MT 的网站上测试通过。
那篇入门文章我曾贴在前面的 blog 里。
就我目前的理解,所谓“TrackBack”,类似一种“通知”(ping)。举例说明:我在网上闲逛时,阅读了某人(不妨称呼其 A 君)的 Blog,并且对于他的某篇网志很感兴趣,之后,我在写自己今天的 blog 时,引用/评论了 A 君的这篇文章(全部或部分,哪怕仅仅一个链接),并且我打算让 A 君知道他的这篇文章被我所引用/评论,此时,我就需要使用 TrackBack。
TrackBack 是一种通过 HTTP 协议来进行某种方式的网络通信的方式或过程。它是和特定的 Blog 平台相关的,目前还没有统一标准。它和 RSS 一样,也是为以 Blog 为代表的新一代网络内容发布方式提供信息聚合的方便。
目前使用最多的 TrackBack 规范恐怕应该是 MT 制订的了。它是这么规定的(我的理解):
1. 每篇网志都有一个称为 TrackBack URL 的地址,这个地址依据 Blog 平台程序而不同,和它本身的 URL 地址(网址)也不同。比如,我的某篇 blog 的网址是“http://www.sinzy.net/Blog/Read.asp?ID=1&BID=1251”,而我可以规定它相应的 TrackBack URL 是“http://www.sinzy.net/Blog/TrackBack.asp?ID=1&BID=1251”。这个地址就是我们发送“通知”的目的地。
2. 发送的 TrackBack 信息,形式上就类似对特定文章的 comment~只是还包含你这个发送人的一些信息。上例中,我给 A 君发送 TrackBack ping 后,A 君的那篇文章的评论部分(或者专门的 TrackBack 部分)就会多出我发的东西。这样,A 君就事实上和我建立起了 Blog 的链接。
3. 通过 Blog 平台,向上述 TrackBack URL 发送一个 HTTP post(即 TrackBack ping),post 中包括下列元素:title:标题;url:你自己的文章/Blog 的地址;excerpt:内容摘要,相当于评论内容;blog_name:你的 Blog 的名字。
4. 接受 TrackBack ping 的 Blog 平台,需要回复一段简单的 XML 信息答复接受成功与否。
详细的规范,参见http://www.movabletype.org/docs/mttrackback.html。
所以,只要是按照 title,url,excerpt 和 blog_name 这些元素组成和发送 HTTP post 并接受和处理,即可实现基本的 TrackBack。而支持 TrackBack 的 Blog 程序,还需要对每篇网志提供唯一的 TrackBack URL(这个更简单)。我在 ASP 中,是用的 ServerXMLHTTP 对象来做的。
通过 TrackBack,Blog 之间就能连成一张大网了,可怕~有趣!:)
我的 nirvana 将很快支持 MT 规范的 TrackBack~
评论列表∣评论数:10 部分代码(试验性质):
发送 TrackBack ping:
Dim sendString
sendString = "title=" & Server.URLEncode(s_title) & "&url=" & Server.URLEncode(s_url) & "&excerpt=" & Server.URLEncode(s_excerpt) & "&blog_name=" & Server.URLEncode(s_blog_name)
Dim oPing
Set oPing = Server.CreateObject("MSXML2.ServerXMLHTTP")
oPing.open "POST", targetUrl, False
oPing.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oPing.send sendString
Response.Write Server.HTMLEncode(oPing.responseXML.xml)
Set oPing = Nothing
天魔 @ 2004-3-16 16:42:37
接受 TrackBack ping:
Dim s_title, s_url, s_excerpt, s_blog_name
s_title = URLDecode(Request.Form("title"))
s_url = URLDecode(Request.Form("url"))
s_excerpt = URLDecode(Request.Form("excerpt"))
s_blog_name = URLDecode(Request.Form("blog_name"))
天魔 @ 2004-3-16 16:43:54
支持啊,我在做wap的部分!
_xyz