前回の記事では、「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でニュースサイトのフィードを管理します。