F.Ko-Jiの「一秒後は未来」

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ではうまくパースできません。)

というわけで、本質思考道場さんにカヌーの記事が書かれているのを見つけたので取り込んでみました。北京五輪/北京オリンピック 最新ニュースのポータルサイトのカヌーのカテゴリに表示されています。

いやぁ、フィードってほんとにいいもんですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

著者について

fkoji

F.Ko-Ji

Webエンジニアやってます。最近は ドットインストール の開発がお仕事です。その傍ら、個人で Meity電車遅延なう梅酒.in#グラドル自画撮り部 の部室といったネットサービスを開発・運営してます。梅酒と草野球とリアル脱出ゲームが好きです。

» 詳しいプロフィールや運営サービスの一覧など