Google AJAX Feed APIで、HTMLにRSSフィードを表示

最終更新日: 2009年2月7日 23:53

下準備

1 Google AJAX Feed API - Google Code で、API keyを取得します(画面右上の“How do I start?”から)

2 フィードを表示させたいHTMLの<head> 〜</head>内に、以下の記述を行います

※API key生成時に、最も基本的な機能を備えたHTMLも一緒に生成してくれますので、そちらをカスタマイズするのもいいかと思います。

2-1 API key(黄色い部分は生成毎に異なります)の読み込み

<script type="text/javascript" src="http://www.google.com/jsapi?key=自分のAPIキー"></script>

2-2 Feed API の読み込み

このスクリプト内で、「読み込むRSSフィードのURL(下記の黄色い部分)」や「フィードの内容をどのように表示させるか」を定義します。詳しい解説は、マイコミジャーナルの【ハウツー】Googleからの新たな贈り物、「Google AJAX Feed API」を試そう がなかなか参考になります。

 <script type="text/javascript">
     
 google.load("feeds", "1");
 
 function initialize() {
 var feed = new google.feeds.Feed("http://www.digg.com/rss/index.xml");
 feed.load(function(result) {
 if (!result.error) {
 var container = document.getElementById("feed");
 for (var i = 0; i < result.feed.entries.length; i++) {
 var entry = result.feed.entries[i];
 var div = document.createElement("div");
 div.appendChild(document.createTextNode(entry.title));
 container.appendChild(div);
 }
 }
 });
 }
 google.setOnLoadCallback(initialize);
 
 </script> 

HTML上に、フィードを読み込むためのdiv要素を設定します

<div id="feed"></div>

使用例

上記の設定で、Web技術Input&Outputのフィード情報(http://herrkf.com/webtech/feed)を読み込むと以下のようになります。

少しカスタマイズしてみる

1 最新の〜件を表示させる

デフォルト設定では、フィードを読み込む数は4になっていますが、この数を増やす為には、フィード読み込みURLの行の下に、feed.setNumEntries(読み込みたい数);と記入すればいいようです。下記例では最新の7件を読み込んでいます。

 var feed = new google.feeds.Feed("http://herrkf.com/webtech/feed");
 feed.setNumEntries(7);

2 フィードにハイパーリンクを追加する

Feed API内の

 div.appendChild(document.createTextNode(entry.title));

div.innerHTML = '■ <a href="' + entry.link + '">' + entry.title + '</a>';

と書き換える事で、フィード内にもハイパーリンクが貼られるようになりました。
(読みやすくするために、アタマに■を追加しています)

3 リンク先を別ウインドウで開く

2のソースコードを、以下のようにすることで、リンク先が別ウインドウで開きます(黄色部分を追加)。

div.innerHTML = '■ <a href="' + entry.link + '" target="_blank">' + entry.title + '</a>';

上記の設定で、フィードを読み込み直すと…

こんな具合にフィードが読み込まれました。おそらく最も基本的な使い方でしょうが、静的なHTMLでもRSSフィードがこんな簡単に読み込めるのはウレシイですね。

制作例:色々なサイトのRSSを読み込む

GIGAZINEやネタフル、百式などのフィードを一カ所に集約してみました >>>