メッセージ

2008年12月30日の記事

2008/12/30(火) Google AJAX Feed API再び

いろいろいじって、一つのフィードを表示するのは以下のようにした。これは映画フォーラムのRSSを3つ取得して表示する。BLOG dot USK dot CCを参考に書き換えた。YOUR KEY HEREには取得したGoogle AJAX Feed APIキーを書く。

<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_KEY_HERE"></script>
<script type="text/javascript">
<!--
google.load("feeds", "1");
function initialize() {
var feedControl = new google.feeds.FeedControl();
var feed = new google.feeds.Feed("http://forum.cinema1987.org/modules/d3forum/index.php?page=rss&forum_id=1&odr=1");
feed.setNumEntries(3);
feed.load(function(result) {
if (!result.error) {
var container = document.getElementById("google-rss");
var text = "";
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
var dd = new Date(entry.publishedDate);
var yearNum = dd.getFullYear();
var date = yearNum + "年" + (dd.getMonth() + 1) + "月" + dd.getDate() + "日 " + dd.getHours() + "時" + dd.getMinutes() + "分";
text += "<dt>「" + "<a href=" + entry.link + ">" + entry.title + "</a>」(" + date + ")</dt><dd>" + entry.contentSnippet + "...</dd>" ;
}
container.innerHTML = "<dl>" + text + "</dl>" ;
}
});
}
google.setOnLoadCallback(initialize);
// -->
</script>

表示したい所に<div id="google-rss">Loading...</div>と書けばOK。複数のフィードを扱うにはfeedControlを使う。

<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_KEY_HERE"><
/script>
<script type="text/javascript">
<!--
google.load("feeds", "1");
function initialize() {
var feedControl = new google.feeds.FeedControl();
feedControl.addFeed("http://cinema1987.org/diary/index.rdf", "映画とネットのDIARY");
feedControl.addFeed("http://forum.cinema1987.org/modules/d3forum/index.php?page=rss&forum_id=1&odr=1", "映画フォーラム");
feedControl.addFeed("http://cinema1987.org/rss/index.rdf", "シネマ1987online"); feedControl.setNumEntries(3);
feedControl.draw(document.getElementById("feedControl"));
}
google.setOnLoadCallback(initialize);
// -->
</script>

表示には <div id="feedControl">Loading...</div>と書く。

しかし、これだと、なぜか日付が1カ月ずれる。これはGoogle側の不具合だろう。他のサイトでもずれている。そのうち直るのだろうか。スクリプトはこちらの方が簡単だが、その分、カスタマイズはあまりできないようだ。

このほか、参考になるサイトはGoogle AJAX Feed API入門など。