フィードのリストを取得
広告
キーワードに一致したフィードが1個以上見つかった場合、entries[] プロパティの値の中にフィードのリストが含まれています。entries[] プロパティの値は次のような構成となっています。
entries[] title link contentSnippet url
それぞれの値の意味は次の通りです。
| プロパティ | 説明 |
|---|---|
| title | フィード タイトル |
| link | HTML バージョンのフィードの URL |
| contentSnippet | 概要 |
| url | 実際のフィードの URL |
「title」はフィードの元になっているサイトやブログのURL、「url」はフィードのURLを表します。「contentSnippet」は何を持ってきているのか分かりませんでした。
例えば次のように記述することでフィード毎の各値を取得できます。
function dispfeed(result){
if (!result.error && result.entries.length > 0){
for (var i = 0; i < result.entries.length; i++) {
var title = result.entries[i].title;
var link = result.entries[i].link;
var contentSnippet = result.entries[i].contentSnippet;
var url = result.entries[i].url;
}
}
}
サンプルプログラム
それでは簡単なサンプルで試してみます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="http://www.google.com/jsapi?key=(key)"> </script> <script type="text/javascript" src="./js/script2_1.js"> </script> </head> <body> <p>Google AJAX Feed API テスト</p> <div id="feed"></div> </body> </html>
google.load("feeds", "1");
function initialize() {
google.feeds.findFeeds("はてな", dispfeed);
function dispfeed(result){
if (!result.error && result.entries.length > 0){
var container = document.getElementById("feed");
var htmlstr = "";
for (var i = 0; i < result.entries.length; i++) {
var entry = result.entries[i];
htmlstr += "<h2>" + entry.title + "</h2>";
htmlstr += "<p>" + entry.link + "</p>";
htmlstr += "<p>" + entry.url + "</p>";
htmlstr += "<p>" + entry.contentSnippet + "</p>";
}
container.innerHTML = htmlstr;
}
}
}
google.setOnLoadCallback(initialize);
上記を実際にブラウザ見てみると次のように表示されます。
キーワードに指定した値と一致した部分は自動的に強調表示されています。
サンプルプログラム
もう1つサンプルを試してみます。今度は取得したフィードのリストからgoogle.feeds.FeedControlクラスのオブジェクトを作成し、各フィードに含まれるエントリを表示させてみます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>Google AJAX Feed API テスト</title> <script type="text/javascript" src="http://www.google.com/jsapi?key=(key)"> </script> <script type="text/javascript" src="./js/script2_2.js"> </script> </head> <body> <p>Google AJAX Feed API テスト</p> <div id="feed"></div> </body> </html>
google.load("feeds", "1");
function initialize() {
google.feeds.findFeeds("社長日記", dispfeed);
function dispfeed(result){
if (!result.error && result.entries.length > 0){
var feedControl = new google.feeds.FeedControl();
feedControl.setNumEntries(2);
for (var i = 0; i < result.entries.length; i++) {
var entry = result.entries[i];
feedControl.addFeed(entry.url, entry.title);
}
feedControl.draw(document.getElementById("feed"));
}
}
}
google.setOnLoadCallback(initialize);
上記を実際にブラウザ見てみると次のように表示されます。
取得したフィード毎に最大2つのエントリを表示しています。
( Written by Tatsuo Ikura+ )
Facebook Page
