フィードのリストを取得

広告

キーワードに一致したフィードが1個以上見つかった場合、entries[] プロパティの値の中にフィードのリストが含まれています。entries[] プロパティの値は次のような構成となっています。

entries[]
  title
  link
  contentSnippet
  url

それぞれの値の意味は次の通りです。

プロパティ説明
titleフィード タイトル
linkHTML バージョンのフィードの 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;
    }
  }
}

サンプルプログラム

それでは簡単なサンプルで試してみます。

sample2_1.html

<!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>

script2_1.js

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クラスのオブジェクトを作成し、各フィードに含まれるエントリを表示させてみます。

sample2_2.html

<!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>

script2_2.js

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