Google Feed APIを利用すると 簡単にRSSを表示することができます
Google Feed APIって何ができるの?
さまざまなブログツールで利用されているRSS/Atomフィードを簡単に表示できます
ほかにもPicasaやGoogle Buzzの情報も表示することが可能です
スクリプトの記述
Google Ajax Libraries APIの利用
<script type="text/javascript" src="http://www.google.com/jsapi/"></script>
必要なライブラリ(feeds)をダウンロード
google.load("feeds","1");
google.setOnLoadCallback
google.loadでライブラリを利用すると 非同期で読み込まれるため
ライブラリの読み込み完了したら 関数を実行するように「google.setOnLoadCallback」を利用する
google.setOnLoadCallback(function(){
getFeed();
}); //google.setOnLoadCallback
Feedを読み込むスクリプト
今回「http://googlejapan.blogspot.com/atom.xml」を読み込みます
function getFeed(){
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml");
feed.setNumEntries(5);
feed.load(callback);
}
function callback(result){
if (result.error){
alert(reault.error.message);
}
var res = "";
var len = result.feed.entries.length;
for (var i = 0;i < len;i++){
var entry = result.feed.entries[i];
var title = entry.title;
var date = entry.publishedDate;
var content = entry.contentSnippet;
res += "<p><b>" + title + "</b></p>";
res += "<div>" + date + "</div>";
res += content + "<hr />";
}
var panel = document.getElementById("feed_panel");
panel.innerHTML = res;
}
こんな感じで 読み込んだfeedをidが「feed_panel」の要素の中に表示させることができます
htmlには
<div id="feed_panel"></div>
と記述するだけです
サンプルコード
<html>
<head>
・
・
・
<script type="text/javascript" src="http://www.google.com/jsapi/"></script>
<script type="text/javascript">
google.load("feeds","1");
google.setOnLoadCallback(function(){
getFeed();
}); //google.setOnLoadCallback
function getFeed(){
var feed = new google.feeds.Feed("http://googlejapan.blogspot.com/atom.xml");
feed.setNumEntries(5);
feed.load(callback);
}
function callback(result){
if (result.error){
alert(reault.error.message);
}
var res = "";
var len = result.feed.entries.length;
for (var i = 0;i < len;i++){
var entry = result.feed.entries[i];
var title = entry.title;
var date = entry.publishedDate;
var content = entry.contentSnippet;
res += "<p><b>" + title + "</b></p>";
res += "<div>" + date + "</div>";
res += content + "<hr />";
}
var panel = document.getElementById("feed_panel");
panel.innerHTML = res;
}
</script>
</head>
<body>
<div id="feed_panel"></div>
</body>
</html>
出力サンプル
jQueryも利用したスクリプト部分のサンプルコード
<html>
<head>
・
・
・
<script type="text/javascript" src="http://www.google.com/jsapi/"></script>
<script type="text/javascript">
google.load("jquery","1");
google.load("feeds","1");
google.setOnLoadCallback(function(){
var feed = new google.feeds.Feed("http://feedblog.ameba.jp/rss/ameblo/prostaff1/rss20.xml");
feed.setNumEntries(10);
feed.load(function(result){
$.each(result.feed.entries,function(){
$("#feed_panel").append("<p><b>" + this.title + "</b></p>" + "<div>" + this.publishedDate + "</div>" + this.contentSnippet + "<hr />");
});
});
}); //google.setOnLoadCallback
</script>
</head>
<body>
<div id="feed_panel"></div>
</body>
</html>
jQueryも利用した出力サンプル
参考ページ
参考書籍の紹介
この本にもっと詳しいサンプルデータが掲載されています