「RSSフィード指定するだけ!たった10分でアンテナサイトを作る方法 56docブログ」を見て、本エントリーを起こしました。
RSSをサイトに出力する際に「Google Ajax Feed API」を使用する方が多いようですが、複数のRSSのソートがうまく出来なかったり、キャッシュや取得タイミングの関係でうまく表示されなかったり、どうも動作が安定していない印象があります。
上記のような悩みがある場合、米Yahoo!の「Pipes」がとても便利です。
Pipesって何さ
米Yahoo!のサービスで、RSSやXMLやJSONなどを統合したりソートしたり色々弄ることができます。
利用には米Yahoo!のユーザー登録が必要です。
2007年に公開されたサービスですが、ちょこちょこ機能が追加されてはいるものの、レイアウトなどは一切変わっておらず、当時からサービスとして完成されていたことが伺えます。
ちなみに、私は会社でブロックされているサイトのRSS取得に利用するだけという、勿体無い使い方をしています。
アンテナサイト用にPipesでRSSをまとめてソートする
設定してあるRSSはサンプルなので、RSSを置き換えてお使いください。
- アンテナサイト サンプル
ログインした状態で「Clone」すると手っ取り早く幸せになれます。
設定の流れを一応説明しておきます。
- 「Pipes」にサインインして「My Pipes」を選択する
- 新規作成画面に移るので「Fetch Feed」を追加してひたすらRSSを突っ込む
- 最大数は10なので足りない場合「Fetch Feed」を更に追加してRSSを突っ込む
- RSSを入れ終わったら「Fetch Feed」を「Union」に繋げる
- 日付フォーマットがFeedによって異なるので「Union」に「Loop」を繋げ「Date Formater」で整形する
- 「Loop」に「Sort」繋げて新着順にソートする
- 「Sort」に「Output Pipe」繋げて「Save」する(名前は適当)
- 「Run Pipe」で画面遷移する
- 作成した「Pipe」を「Publish」で公開にする
以上でPipes側の設定は完了です。
PipesからJSONPを取得してサイトに出力する
「Get JSON」のURLに「&_callback=関数名」追加するとJSONPの取得が可能です。
- 以前作成したgetJSON.jsを使用してサンプルを作ってみました。
- サンプル
- サンプル-ダウンロード
このサンプルではサイト名を取得できないようなので、Pipesのテスト中です。
更新したらまたお知らせします。
追記:同日14時45分
サイト名取得の件ですが、Pipesで対応するのが思った以上に面倒だったので、JSにドメイン-サイト名の一覧を用意して出力させるようにしました。
色々させると重くなるようなので、どこまでPipesに担当させるか、バランスが難しいですね。
参考にさせていただいたサイト
※Pipesの日付フォーマットを参考にさせていただきました。
※JSの日付出力を参考にさせていただきました。
この場を借りて御礼申し上げます。ありがとうございました。
不具合報告やツッコミ等あれば、ぜひコメントしてください。
よろしくお願いします。