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という順で処理している。

Yahoo!pipes

Fetch Feed
まずここで読み込むRSSを指定。
複数指定することも出来る。

Create RSS
読み込んだRSSを元に新たなRSSを生成

Create RSS

Filter
指定条件を元に記事を除去したり抽出してくれるモジュール。
ここでは item.title に “[PR]” が含まれている(Contains)記事を削除(Block)している。

Filter

Truncate
フィード件数を指定。
ここでは1件を指定している。

Truncate

Rename
データ名を変更するモジュール。

  • item.image.url を weahterNo に変更(Rename)
  • item.title を maxTemp としてコピー(Copy As)
  • item.description を minTemp としてコピー(Copy As)

Rename

Regex
正規表現を用いてデータを加工するモジュール。

  • item.weatherNo の “http://image.weather.livedoor.com/img/icon/” を削除
  • item.weatherNo の “.gif” を削除
  • item.maxTemp の “最高気温” より前を削除
  • item.maxTemp の “℃” より後を削除
  • item.minTemp の “最低気温は” より前を削除
  • item.minTemp の “℃” より後を削除

Regex

Pipe Output
加工したデータを出力するモジュール
右上部の[SAVE]ボタンを押してデータをセーブすると、
最上部に「Run Pipe…」というテキストリンクが表示され、
そこをクリックすると、生成したリストが表示される。

Pipe Output

ここの「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

  1. 通りすがりの者です。

    あなたが神様でしたか。

    クロスドメインの件、助かりました。

    コメント by 匿名 — 2013年1月17日 15:24

  2. コメントありがとうございます。
    お役に立てたようでよかったです。

    コメント by littlepad — 2013年4月26日 16:17

TrackBack URL

Leave a comment