Movable Type 備忘録
Google AJAX Feed API
- Prev Page: Firefox2.0をスピードアップする13の方法
- Next Page: 白地図、世界地図、日本地図が無料
こんにちわ^^
今日は昨日までとは違って東京は暖かかったです(●´∀`●)
学生の頃の友人たちと上野で飲んできました。
福島からわざわざこの日の為に東京に来た友人もいて、学生の頃の思い出話に華咲きました。
みんなの近況が聞けて楽しかったです。わたしもがんばらなきゃ・・・と思う今日この頃です。
さて、先日Google AJAX Feed APIってのが公開されました。
どんなAPIかというと、お気に入りブログのRSSやAtomの一般的なFEEDをカンタンに取得することができるAPIみたいです。
さっそくわたしも使ってみましたのでご紹介します。
このAPIを使えば、クロスドメインの制約を気にすることなく、他サイトのFEEDを利用することができるようです。
まずはサンプルですね ( ̄∇ ̄)b
サンプルとして、いつもお世話になってるぷーこさんとTAEKOさんのサイトのFEEDを表示させてみました。
Google AJAX Feed API Keyを取得する
まず、Google AJAX Feed APIからStart using the Google AJAX Feed APIをクリックして、以下のことを行います。
- 「I have read and agree with the terms and conditions」にチェック
- 「My web site URL」に各自のサイトのURLを入力
- 「Generate API Key」をクリック
そうすると、Googleアカウントでのログインを促されますので、ログインします。
Googleアカウントをお持ちでない人は、こちらから登録できます。結果、以下の情報がもらえます。
Your key is:
API Keyになります。This key is good for all URLs in this directory:
先ほど入力した、各自のサイトのURLが表示されます。Here is an example web page to get you started:
FEEDを表示するためのサンプルHTMLになります。
先ほどわたしが例として示したのは、このHTMLをカスタマイズしたものです。
あとは、サンプルHTMLをお好みでカスタマイズするなどして、表示させてたいページの</body>タグの上辺りに追加することでお気に入りサイトのFEEDを表示させることができました。
ちなみに、例として示したお気に入りサイトの一覧は以下のコードになります。
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR API KEY"></script><script type="text/javascript">var urls = new Array("http://feeds.feedburner.jp/EgoecoDays","http://taeko.w-museum.com/wing/index.xml");google.load("feeds", "1");function initialize() {var container = document.getElementById("google-feed");container.innerHTML = "<dl>";for (var n = 0; n < urls.length;n++ ) {var feed = new google.feeds.Feed(urls[n]);feed.setNumEntries(5);feed.load(function(result) {if (!result.error) {container.innerHTML += "<dt><a href='" + result.feed.link + "'>" + result.feed.title + "<\/a><\/dt>";for (var i = 0; i < result.feed.entries.length; i++) {var entry = result.feed.entries[i];container.innerHTML += "<dd><a href='" + entry.link + "'>" + entry.title + "<\/a><\/dd>";}}});}container.innerHTML += "<\/dl>";}google.setOnLoadCallback(initialize);</script>
青い字の部分で取得したいサイトのFEEDを記述してます。
赤い字の部分で最近投稿された記事を5件分取得してます。
ピンクの部分で一覧表示させてます。
ここまでを</body>タグの上辺りに追加します。
そそ、以下の赤い字のYOUR API Keyというところを、各自のAPI Keyで記述しておきます。
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR API KEY"></script>
そして、以下の緑の字の部分を表示したい場所(たとえば、サイドバーなど)に追加します。
ここに取得したFEEDの一覧が表示されます。
<div id="google-feed"></div>
以上です。
Trackback Pings(1)
- from
S[es] blog
遅ればせながら・・・、ではあるが、Google Ajax Feed API、便利...




こんにちは~
これ、プロキシ用意しなくてよかったりして、ずいぶん便利ですよね。
リニューアルがひと段落したら、早速試してみようと思ってます。
>>1 oscar さん
こんにちわ^^
返事が遅くなりすいません (m;_ _)mペコ
Google Ajaxは使い方は統一されてるので便利ですよね♪
初めまして、soraと申します。
Google AJAX Feed APIを使っているのですが、、
新着記事にはnewアイコンを表示させることもできるのでしょうか?
>>3 sora さん
こんばんわ^^
以下のコードをお使いください。
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_API_KEY"></script> <script type="text/javascript"> var urls = new Array("http://●●●/index.xml"); google.load("feeds", "1"); function initialize() { var now = (new Date()).getDate(); var container = document.getElementById("google-feed"); container.innerHTML = "<dl>"; for (var n = 0; n < urls.length;n++ ) { var feed = new google.feeds.Feed(urls[n]); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { container.innerHTML += "<dt><a href='" + result.feed.link + "'>" + result.feed.title + "<\/a><\/dt>"; for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var entdate = new Date(entry.publishedDate).getDate(); var newmark = ''; if (now == entdate) newmark = '<img src="http://●●●/new.gif" width="20" height="5" \/>'; container.innerHTML += "<dd><a href='" + entry.link + "'>" + entry.title + "<\/a>" + newmark + "<\/dd>"; } } }); } container.innerHTML += "<\/dl>"; } google.setOnLoadCallback(initialize); </script>※行頭に全角スペースが入ってますので、削除してからお使いください。カンタンに説明すると、
以上です。
確認してませんが、たぶん期待する表示になるかと思います。
ご確認ください
bzbell様
お返事ありがとうございます★
テンプレートのスクリプトはMTじゃないと使えないんでしょうか?
の上に記入するのではなくの上ですよね?;^^
全角を抜いてそのまま貼り付けたんですが、エラーで表示されませんでした。
現在のGoogle AJAX Feed APIのテンプレートに9行目、24行目、27行目、28行目を追加することで表示されました★
すごく助かりました本当にありがとうございます。
bzbell様
何度も何度も本当すいません。;_;
NEWアイコンが一日で消えるという設定を3時間後には消えるなどできますでしょうか?
宜しくお願い致します。
>>6 sora さん
こんばんわ^^
以下のコードを参考にしてください。
<script type="text/javascript" src="http://www.google.com/jsapi?key=YOUR_API_KEY"></script> <script type="text/javascript"> var urls = new Array("http://●●●/index.xml"); var limit = 3 * 60 * 60 * 1000;// 3 時間後 google.load("feeds", "1"); function initialize() { var now = (new Date()).getTime(); var container = document.getElementById("google-feed"); container.innerHTML = "<dl>"; for (var n = 0; n < urls.length;n++ ) { var feed = new google.feeds.Feed(urls[n]); feed.setNumEntries(5); feed.load(function(result) { if (!result.error) { container.innerHTML += "<dt><a href='" + result.feed.link + "'>" + result.feed.title + "<\/a><\/dt>"; for (var i = 0; i < result.feed.entries.length; i++) { var entry = result.feed.entries[i]; var entdate = new Date(entry.publishedDate).getTime(); var newmark = ''; if (now >= entdate && now <= (entdate + limit)) { newmark = '<img src="http://●●●/new.gif" width="20" height="5" \/>'; } container.innerHTML += "<dd><a href='" + entry.link + "'>" + entry.title + "<\/a>" + newmark + "<\/dd>"; } } }); } container.innerHTML += "<\/dl>"; } google.setOnLoadCallback(initialize); </script>変更点は 5 行目追加と、28 行目を変更してます。
ご確認ください
bzbell様

うまくできました。
この度は本当にありがとうございました。