2013年4月30日火曜日

Node.js で Google Feed API

さて、浦和レッズ My Lifeではニュース記事の取得に
Google Readerを使用しているが、Googleが7/1でサービス終了するという話で
代替手段が必要になった。

feedlyがGoogle Reader互換APIを提供するという話もあるが、
まだ情報が公開されていないので、Node.jsとGoogle Feed API
作ってみることにしよう。

ということで、Node.jsのインストール。
http://snippets.takahironakamori.jp/2013/01/nodejs_install/

最初にPython 2.7.3のインストール。
$ cd /tmp
$ wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
$ tar zxvf Python-2.7.3.tgz
$ ./configure --with-threads --enable-shared
$ make
$ sudo make install
$ ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/
$ python -V
Python 2.7.3と表示されたらOK。

* * * * * * * * * * * * * * * * * * * * * * * * * *

次にNode.jsのインストール。
$ cd /tmp
$ wget -N http://nodejs.org/dist/node-latest.tar.gz
$ tar xzvf node-latest.tar.gz
$ cd node-v0.x.xx ←解凍したディレクトリへ移動
$ make
$ sudo make install
$ node -v
v0.10.5と表示されたらOK。(2013/4/30時点)

* * * * * * * * * * * * * * * * * * * * * * * * * *

次に、Node.jsでGoogle Feed APIを使うためのモジュールをインストール。
https://npmjs.org/package/google-feed-api

$ mkdir nodetest  ※任意のDIR
$ cd nodetest
$ npm install google-feed-api

* * * * * * * * * * * * * * * * * * * * * * * * * *
そして実装してみる。
$ vi google_feed_api_test.js
↓中身
//モジュールロード
var gfeed = require('google-feed-api');
//フィードを読み込み
var feed = new gfeed.Feed("http://www.uramaga.jp/index.rdf");
feed.load(function(res) {
        console.log("site title=" + res.feed.title);
});
//フィード取得件数設定
feed.setNumEntries(10);
//フィードを読み込む
feed.listItems(function(items){
        for(i=0; i<items.length; i++) {
                var item = items[i];
                console.log("title=" + item.title + "  " + item.publishedDate);
//              console.log("   content=" + item.content);
        }
});

$ google_feed_api_test.js

を実行すると結果は以下の通り。
feed title=浦和レッズマガジン
title=「浦和レッズマガジン×浦和パルコ水内猛&都築龍太トークライブ」を開催しました!  Fri, 07 Dec 2012 01:55:55 -0800
title=水内猛&都築龍太トークライブ 11月25日(日)、浦和パルコにて開催決定  Sun, 11 Nov 2012 17:35:26 -0800
title=力(リキ)で飲もう。レッズを語ろう。水内猛&島崎英純ウラマガ・トークライブ<RIKI NIGHT>10月23日(火)開催  Wed, 26 Sep 2012 06:31:05 -0700
title=永井雄一郎ナイト 真夏の夜のトークライブ 開催決定! 8月23日(木)19:30~ 東京開催 司会:水内猛  Wed, 15 Aug 2012 05:18:17 -0700
title=水内猛&池田学&時田愛梨7/10トークライブ申込受付中! ウラマガ8月号をプレゼント  Wed, 04 Jul 2012 21:28:13 -0700
title=【残席わずか】水内猛&都築龍太トークライブ 6月25日(月)テレ玉スタジオにて開催  Fri, 22 Jun 2012 04:26:59 -0700
title=5月11日(金)福永泰&島崎英純ウラマガトークライブ参加者募集 最新号をプレゼント  Wed, 02 May 2012 15:26:16 -0700

Node.js+Google Feed APIでフィードの内容が取得できた。

* * * * * * * * * * * * * * * * * * * * * * * * * *

読み込んだ結果値の構造は
https://developers.google.com/feed/v1/devguide?hl=ja#resultJson
を参照。