Google Readerの共有アイテムのフィードをマッシュアップ
Google Readerで自分が共有している記事は専用のページで見ることができて、さらにそのページはフィードを配信しているので、容易に他のサービスに取り込むことができます。
たとえば購読しているブログの中から北京五輪のある競技に関係する記事を選び、昨日作成した「北京五輪/北京オリンピック 最新ニュースのポータルサイト」に取り入れることを考えます。
こういう場合、記事を一つずつピックアップしてファイルに追加していったりデータベースに入れたりしていては面倒です。そこで、Google Readerの共有機能を利用します。
共有ページのフィードをアプリケーションに取り込んで、フィードを解析して利用できるようにしておけば、あとはピックアップしたい記事をGoogle Readerで共有状態にするだけで、自動的に北京五輪のニュースサイトに記事を取り込むことができるようになります。
なんて簡単な運用!
フィードのパースは、たとえばSimpleXMLを利用します。
$xml = @simplexml_load_file($feedUrl, 'SimpleXMLElement', LIBXML_NOCDATA);
このように取り込んで、あとはごにょごにょ処理します。アイテムを取得する部分は例えば次のように書けます。
protected function getItems() {
$items = array();
$i = 0;
while (isset($this->xml->entry[$i] )) {
$entry = $this->xml->entry[$i];
$item = array();
$item['title'] = (string)$entry->title;
$item['description'] = (string)$entry->content;
$item['link'] = (string)$entry->link->attributes()->href;
$item['pubdate'] = (string)$entry->published;
$item['source'] = (string)$entry->source->title;
$item['source_link'] = (string)$entry->source->link->attributes()->href;
$items[] = $item;
$i++;
}
return $items;
}
共有ページのフィードは Atom1.0 形式です。entry要素内のsource要素にその記事の配信元の情報が格納されているので、上記のようにすると記事の配信元のサイト名とURLを取得することもできます。(MagpieRSSではうまくパースできません。)
というわけで、本質思考道場さんにカヌーの記事が書かれているのを見つけたので取り込んでみました。北京五輪/北京オリンピック 最新ニュースのポータルサイトのカヌーのカテゴリに表示されています。
いやぁ、フィードってほんとにいいもんですね。
コメントを残す