「Afrous」で作るマッシュアップ
次に実際にマッシュアップをAfrousで作成してみましょう。ここではチュートリアルとして以下のようなマッシュアップ処理を行います。
- はてなキーワードから注目キーワードの情報を取得
- それぞれのキーワードについて「アメブロ」「はてなダイアリー」「livedoorブログ」からGoogle検索
- 各ブログのキーワード検索ヒット数をまとめて棒グラフで表示
1. はてな注目キーワード情報の取得
はてなの注目キーワードはRSSフィードとして公開されています。AfrousでRSSフィードの情報を取得するには、Googleが公開しているAJAX Feed APIを利用して取り込むことができます。
ライブラリパネルから「Google AJAX Feed」アクションをドラッグ&ドロップします。ウィジットの入力フィールド「RSS url」にはてな注目キーワードのRSS URLを入力します。Refreshボタンを押すと以下の図(画面8)のような形でフィード情報が取得できたのが確認できます。
はてな注目キーワードRSSの場合、キーワードの情報は各エントリの中のtitleプロパティに格納されています。必要なのはキーワード情報のみなので、entries配列の中からこのプロパティのみを抽出します。ライブラリパネルからOperationタブを選択し、Arrayパッケージの中の「Pluck」アクションをアクションパネルにドロップします。インスタンス化されたウィジットの入力フィールド「array to pluck」に対して、出力ツリーの中にあるentriesノードをドラッグ&ドロップします(画面9)。
「property name to pluck」フィールドの値として「title」を選び、Refreshボタンを押すと、キーワード情報のみが配列として出力されます(画面10)。
キーワードの上位のみを対象とするため、配列を分割(スライス)して、上位5件だけの配列を新たに作成します。Arrayパッケージの中の「Slice」アクションをアクションパネルにドロップし、入力フィールド「array to slice」に対してPluckアクションの出力結果のノードをドラッグ&ドロップします。入力フィールドの「start index」に0、「end index」に5を入力することで、入力に割り当てられた配列の先頭から5件のみを対象とする出力を得ることができます(画面11)。
2. 繰り返し処理の記述
Afrousでは配列に関しての繰り返し処理を行うために、Iterateアクションを提供しています。これにより配列に含まれるデータに対してそれぞれWebサービスリクエストを発行することができるようになっています。
Operationタブの中にあるArrayパッケージの「Iterate」アクションをアクションパネルにドロップします。インスタンス化されたiterateアクションウィジットの入力フィールド「array to iterate」に対して、先ほど取得した上位5件のキーワードの出力ノードをドラッグ&ドロップします。ウィジットのRefreshボタンを押す前に、隣にある「Open Inner Process」ボタンを押してください(画面12)。
ボタンを押すと、配列の一つひとつの要素に対して繰り返して行う処理であるサブプロセスを定義するタブが新たに現れます(画面13)。新しいタブの中のパラメータパネルには、それぞれelement, indexというパラメータが定義されており、それぞれ配列の要素と先頭からのインデックスを表しています。