如何在自己的Blogger上显示最新文章

首先介绍一个概念:GData,GDtata是Google Data API的简称,提供一套简单的协议来读写web上的数据,GData 使用两种基于xml的聚合格式,Atom和RSS,Google更倾向于前者。Atom有一个Atom Publishing Protocol(APP)协议,使得用户可以以HTTP请求的形式来操作网络中的资源,比如一个HTTP的GET方法可以获得特定的资源信息,PUT方法可以对某个资源进行更新。而且GData使用Atom标准的扩展机制来支持查询。GData使得可以让你将各处的信息集中到一起进行显示。

现在基本上一些Google的服务都支持GData。
废话少说,我们来看看Blogger上GData的使用,
首先如果你访问http://www.lostincode.cn/feeds/posts/default 这将是文章的XML标准输出,
但是如果写成http://www.lostincode.cn/feeds/posts/default?alt=json-in-script 则结果就会不一样,alt=json-in-script告诉google将结果以json的形式输出,这里如果你加上回调函数对json进行一定的处理就可以使用友好的html将内容解析出来,加回调函数只需要在后面加&callback=回调函数名字

下面就贴出本人的完整代码,效果就见右侧的最新文章,
大家注意 var link=post.link[4].href;这句代码,Link[]其实是一个文章单元中所有链接的数组,下标从0开始,第四个正好为文章的链接。
还有就是compareentry函数是用来比较时间用的。
----------------------------------------------------------------------
<div id="new">
加载中...
</div>

<script>
function compareentry(a,b){
order= Date.parse(a.published.$t.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/,
'$1/$2/$3 $4 GMT')) - Date.parse(b.published.$t.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/,
'$1/$2/$3 $4 GMT'));
return 0-order;

}
function handlePosts(json) {

var temp = '<ul id="Feed001_feedItemListDisplay">';
var postshow=10;
var sortentry=json.feed.entry.sort(compareentry);
for (var i=0, post; post = sortentry[i]; i++) {
if(i>=postshow) break;
var title=post.title.$t;
var link=post.link[4].href;
var authorname=post.author[0].name.$t;
var timestamp=post.published.$t.substr(0,10);
temp += '<li><span class="item-title"><a href="'+link+'">'+ title +'</a>('+timestamp+')'+'</span></li>';
}
temp+="</ul>";
document.getElementById("new").innerHTML = temp;
}
</script>

<script src="http://www.lostincode.cn/feeds/posts/default?alt=json-in-script&callback=handlePosts"
type="text/javascript"
></script>

0 评论: