RSSフィード指定するだけ!たった10分でアンテナサイトを作る方法 56docブログ」を見て、本エントリーを起こしました。

RSSをサイトに出力する際に「Google Ajax Feed API」を使用する方が多いようですが、複数のRSSのソートがうまく出来なかったり、キャッシュや取得タイミングの関係でうまく表示されなかったり、どうも動作が安定していない印象があります。

上記のような悩みがある場合、米Yahoo!の「Pipes」がとても便利です。

Pipesって何さ

米Yahoo!のサービスで、RSSやXMLやJSONなどを統合したりソートしたり色々弄ることができます。
利用には米Yahoo!のユーザー登録が必要です。

2007年に公開されたサービスですが、ちょこちょこ機能が追加されてはいるものの、レイアウトなどは一切変わっておらず、当時からサービスとして完成されていたことが伺えます。

ちなみに、私は会社でブロックされているサイトのRSS取得に利用するだけという、勿体無い使い方をしています。

アンテナサイト用にPipesでRSSをまとめてソートする

設定してあるRSSはサンプルなので、RSSを置き換えてお使いください。

設定の流れを一応説明しておきます。

  1. Pipes」にサインインして「My Pipes」を選択する
  2. 新規作成画面に移るので「Fetch Feed」を追加してひたすらRSSを突っ込む
  3. 最大数は10なので足りない場合「Fetch Feed」を更に追加してRSSを突っ込む
  4. RSSを入れ終わったら「Fetch Feed」を「Union」に繋げる
  5. 日付フォーマットがFeedによって異なるので「Union」に「Loop」を繋げ「Date Formater」で整形する
  6. 「Loop」に「Sort」繋げて新着順にソートする
  7. 「Sort」に「Output Pipe」繋げて「Save」する(名前は適当)
  8. 「Run Pipe」で画面遷移する
  9. 作成した「Pipe」を「Publish」で公開にする

以上でPipes側の設定は完了です。

PipesからJSONPを取得してサイトに出力する

「Get JSON」のURLに「&_callback=関数名」追加するとJSONPの取得が可能です。

このサンプルではサイト名を取得できないようなので、Pipesのテスト中です。
更新したらまたお知らせします。

追記:同日14時45分
サイト名取得の件ですが、Pipesで対応するのが思った以上に面倒だったので、JSにドメイン-サイト名の一覧を用意して出力させるようにしました。

色々させると重くなるようなので、どこまでPipesに担当させるか、バランスが難しいですね。

参考にさせていただいたサイト

※Pipesの日付フォーマットを参考にさせていただきました。

※JSの日付出力を参考にさせていただきました。

この場を借りて御礼申し上げます。ありがとうございました。


不具合報告やツッコミ等あれば、ぜひコメントしてください。

よろしくお願いします。