yahoo!pipesでFLASH用のRSSを生成するメモ
2009年9月11日 01:28
通常、RSSなどをFLASH側で直接読み込もうとすると、
セキュリティサンドボックスエラーで読み込むことが出来ない。
そういった場合、Yahoo!pipes を利用すると便利。
Yahoo!pipes は任意のRSS又はXML、JSONデータを入力し、
並べ替えや置換等の様々な加工を施し、別のRSSフィードを生成してくれるサービス。
しかもクロスドメインにも対応しているのでFLASHでも読み込み可能なフィードを生成できる。
インターフェースも読み込んだRSSに対して処理したいモジュールをパイプでつないでいくという直感的なもの。
下記の例では Weather Hacks のRSSを読み込み、データを加工している。
今回はFetch Feed → Create RSS → Filter → Truncate → Rename → Regex → Pipe → Outputという順で処理している。
Fetch Feed
まずここで読み込むRSSを指定。
複数指定することも出来る。
Create RSS
読み込んだRSSを元に新たなRSSを生成
Filter
指定条件を元に記事を除去したり抽出してくれるモジュール。
ここでは item.title に “[PR]” が含まれている(Contains)記事を削除(Block)している。
Truncate
フィード件数を指定。
ここでは1件を指定している。
Rename
データ名を変更するモジュール。
- item.image.url を weahterNo に変更(Rename)
- item.title を maxTemp としてコピー(Copy As)
- item.description を minTemp としてコピー(Copy As)
Regex
正規表現を用いてデータを加工するモジュール。
- item.weatherNo の “http://image.weather.livedoor.com/img/icon/” を削除
- item.weatherNo の “.gif” を削除
- item.maxTemp の “最高気温” より前を削除
- item.maxTemp の “℃” より後を削除
- item.minTemp の “最低気温は” より前を削除
- item.minTemp の “℃” より後を削除
Pipe Output
加工したデータを出力するモジュール
右上部の[SAVE]ボタンを押してデータをセーブすると、
最上部に「Run Pipe…」というテキストリンクが表示され、
そこをクリックすると、生成したリストが表示される。
ここの「Get as RSS」でRSSを取得することが出来るが、
このままだとクロスドメインに対応していない。
クロスドメインに対応するためには、取得したURLの pipes.yahoo.com の部分を
pipes.yahooapis.com に変更してやる。
http://pipes.yahoo.com/pipes/pipe.run?_id=xxxxxxxxxx
↓
http://pipes.yahooapis.com/pipes/pipe.run?_id=xxxxxxxxxx
RSSには全部の情報が記述されないっぽいので、細かい情報を必要とする場合は
JSONで取得した方がいいっぽい。
FLASH側でJSONを読み込むにはadobeのas3corelibを利用する。
カテゴリー: programming
2 Comments
Leave a comment
通りすがりの者です。
あなたが神様でしたか。
クロスドメインの件、助かりました。
コメント by 匿名 — 2013年1月17日 15:24
コメントありがとうございます。
お役に立てたようでよかったです。
コメント by littlepad — 2013年4月26日 16:17