前回の記事では、「kintone」を利用できるようにするまで進みました。
今回は早速kintoneでアプリ構築...と行きたいとことですが、まず最初に、野球ニュースのアンテナサイトのひな形サイトを構築します。
アンテナサイトを構築する場合、フィードを登録してマージするシステムが必要となります。
今回は、phpのライブラリ「SimplePie」を使って、フィードのパースを行います。
SimplePieとは
New BSD ライセンスで配布されている、PHPベースのRSSパーサーです。 以下で配布されています。
必要環境
ドキュメントによると以下のとおり
- PHP 5.2.0 以上
- libxml2 ( 2.7.x は不安定なので避けたほうが良いとのこと)
- iconv と mbstring
- cURLかfsockopen()
使い方
オンラインでドキュメンテーションが公開されています。 1.2xまでは、simplepie.incというファイルを使っていたそうですが、1.3x以降は構造が変わったとのことです。 以下が詳しいです。 http://1bit.mobi/20100227021213.html
インストール
以下は1.3.xのインストール方法です。
- /library 以下を全部
- autoloader.php
の2つを、利用したいディレクトリへ配置します。 利用するときは、autoloader.phpを一度requireしてから、各メソッドを呼び出します。
フィードのパース用コード
今回は、以下の4つのニュースサイトを利用することにしました。
- Web Sportiva (集英社) のプロ野球情報
- BASEBALL KING (フロムワン)
- Number Web (文藝春秋) のプロ野球情報
- Full count (Creative2)のNPB情報
以下、復数のRSSフィードをマージして、一覧表示するためのコードです。
<?php // SimplePieを呼び出し require_once('autoloader.php'); // SimplePieの関数 set_feed_url にフィードリストを読みこませる $feed = new SimplePie(); $feed->set_feed_url(array( 'http://sportiva.shueisha.co.jp/clm/baseball/pro/rss.xml', 'http://baseballking.jp/atom.xml', 'http://number.bunshun.jp/list/rsssports?w=%E3%83%97%E3%83%AD%E9%87%8E%E7%90%83', 'http://full-count.jp/category/npb/feed/', )); $feed->init(); ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>SimplePie test</title> </head> <body> <h1>Simple Pie test</h1> <?php foreach ($feed->get_items() as $item): ?> <div> <h2><a href="<?php echo $item->get_permalink(); ?>"><?php echo $item->get_title(); ?></a></h2> <p><?php echo $item->get_description(); ?></p> <p><small><?php echo $item->get_date('Y-m-d H:i'); ?></small></p> <p>blog title:<?php echo $item->get_feed()->get_title(); ?></p> </div> <?php endforeach; ?> </body> </html>
これで、フィードをパース=>時系列に並び替えるひな形プログラムの完成です。
これだけではちょっとデザイン的にアレなので、BootStrapのテーマを利用して、サイトっぽく整形します。
BootStrapのテーマサイト「Start Bootstrap」から「Blog Post」を使わせていただきました。
組み込んで実際に表示した画面イメージはこのとおり。
SimplePieの設定については、公式ドキュメントを参考にしました。
- http://simplepie.org/wiki/reference/start
- http://simplepie.org/wiki/reference/simplepie/get_items
- http://simplepie.org/wiki/faq/typical_multifeed_gotchas
はてな人力検索
http://q.hatena.ne.jp/1285821051 も参考になりました。
次回は、kintoneでニュースサイトのフィードを管理します。