Pages

2011/11/23

Google AJAX Feed APIでRSS複数表示


Google AJAX Feed APIでRSS複数表示(メモ)

head

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

feed.js

var limit = 7 * 24 * 60 * 60 * 1000; //7日
google.load("feeds", "1");
function initialize() {
var now = (new Date()).getTime();
var container = document.getElementById("feed");
container.innerHTML = '';
var feedurl = new Array("URL" "URL" "URL"); //RSSのURL(複数可)
  for (n = 0; n < feedurl.length;n++ ) {
    var feed = new google.feeds.Feed(feedurl[n]);
    feed.setNumEntries(5); //記事を5件表示
    feed.load(function(result) {
      if (!result.error) {
           html ="<h2><a href='" + result.feed.link + "'>"+result.feed.title+"<\/a><\/h2><dl>"; //タイトル
           for (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 = '<span style="color:red;">new!<\/span>';
//「NEWマーク」のタグ
}
 html += "<dt><a href='"+entry.link+"' target='_blank'>"+entry.title+"<\/a> ["+changeDate(entry.publishedDate)+"] "+newmark+"<\/dt>";
//記事タイトル [日付] 7日以内の記事ならNEWマーク
 html += "<dd>"+entry.contentSnippet+"<\/dd>"; //記事の概要
             }
html += "<\/dl>";
container.innerHTML += html;
      }
    });
  }
}
//日付表示変更
function changeDate(str){
  var myDate=new Date(str);
  var YY=myDate.getFullYear();
  var MM=myDate.getMonth()+1;
  if(MM<10){MM="0"+MM;}
  var DD=myDate.getDate();
  if(DD<10){DD="0"+DD;}
  var date=YY+"."+MM+"."+DD;
  return date;
 } 
google.setOnLoadCallback(initialize);

HTML
<div id="feed">Loading...</div>


記事の文字数調整
"+entry.contentSnippet+"

"+entry.contentSnippet.substr(0,10)+"
記事の概要の0文字目から10文字目までを表示。

Googleドキュメント