Yahoo! Pipes ちょっぴり追加情報
先日公開された Yahoo! Pipes ですが、やはり便利ですね。購読しているフィードの、「ここがこうだったらな」というところを気軽に編集できるのは素晴らしいです。自分でもいくつかパイプを作ってみて、その過程で知った追加情報が 2 つほどあるので、メモ代わりに記事にしておこうと思います。大したことではありませんが、お役に立てば幸いです。
Input form のダブルエスケープバグ
せっかく URL 入力フォームがあるので、任意のフィード URL が指定できる汎用のフィルタパイプを作ってみたんです。それが Run this pipe のページではきちんと動くんですが、なぜか RSS フィードや JSON フィードを表示させると中身が空っぽになってしまいました。いろいろとパイプを組みなおしたりしてみても修正できないので、恥を忍んでぶろーくんいんぐりっしゅでフォーラムに質問してみました(^^ゞ
どうやら、フォームの入力文字列を二重エスケープしてしまうバグがあるらしく、現在修正しているところだそうです。 URL を確認してみると、確かにばっちり二重エスケープされてます。
http://.../run?feed=http%253A%252F%252Fslashdot.jp%252Fslashdotjp.rss&_render=rss
というか、 URL 見て気付けよって話ですね。私、相変わらず注意力ないなぁ・・・orz。というわけで、 URL の "%25" を手動ですべて "%" に置き換えれば動くと思います。バグが修正されるまではこれで我慢です。
ただ、不思議なことに最初に作った翻訳パイプは二重エスケープされているにも関わらずちゃんと動くんですよね・・・。なんでだろう(?_?)
パイプの出力を JSONP で取得
パイプの JSON フィード URL に以下の CGI パラメータを付けることで、 JSONP 形式の出力が得られるようです。
_callback=<コールバック関数名>
これは素晴らしい機能ですね。 Yahoo! Pipes を介せば JavaScript からクロスドメインであらゆる RSS / Atom / JSON フィードにアクセスできるわけです。 JSON(P) フィードの内容はパイプの組み方や元データによって微妙に変化しますが、主なデータは以下のようにしてアクセスできます(取得した JSON データが変数 json に格納されていると仮定しています)。
アクセス方法 | 内容 |
---|---|
json.count | アイテム数 |
json.value.title | フィードタイトル |
json.value.link | Run this pipe ページの URL |
json.value.description | フィードの説明 |
json.value.pubDate | 更新日時 |
json.value.items[n].title | 各アイテムのタイトル |
json.value.items[n].link | 各アイテムの URL |
json.value.items[n].description | 各アイテムの内容 |
json.value.items[n].pubDate | 各アイテムの更新日時 |
その他の追加パラメータは基本的に要素名がそのままオブジェクトのメンバ名(または連想配列のインデックス)になるようです。
実際にこれを利用して任意のフィードの内容を出力する Web パーツを自動生成してくれるサービスも公開されています。
http://kentbrewster.com/badger/
自分のお気に入りフィードを統合したものを Web ページに表示する、なんてのも面白いかもしれませんね。
以上です。また新しいネタを見つけたら記事にしますね。
追記
ついさっき見つけたネタですが、 Dojo が Yahoo! Pipes の JSONP フィード読み込みをサポートする(した?)みたいですね。
http://journal.mycom.co.jp/news/2007/02/26/342.html (MYCOMジャーナル)
http://ajaxian.com/archives/yahoo-pipes-support-in-dojo (Ajaxian)
どんどんサポートが広がる Yahoo! Pipes 。今後が楽しみです。
詳しくはこちらの記事をどうぞ!
この記事にコメントする