XML形式のデータは,様々なWebサービス間で,データのやり取りを行う際の基本的なデータ形式として利用されています。Yahoo!のWebサービスとのデータのやり取りを例に,ActionScript3.0でのXMLデータの扱いについて学びましょう。

 今回は,取り扱うのが簡単で,Flashムービーからでも利用できる,Yahoo!のWebサービス(Yahooデベロッパーネットワーク)を使います。

 図1のムービーは,Flashムービー内で入力した検索ワードを元に,Yahoo!で公開されているWebサービスと連携して画像を表示するものです。表示されたサムネイルはドラッグ&ドロップで移動することができるほか,[選択した画像のページへジャンプ]ボタンを押すと,その画像が含まれるページにジャンプすることができます。

図1●Yahoo! Webサービスと連携して画像を検索するFlashムービー
図1●Yahoo! Webサービスと連携して画像を検索するFlashムービー
[画像のクリックでサンプルページを表示]

 Webサービス側の設定にもよりますが,Flashムービーと検索エンジンを組み合わせるなどの仕組みを使って,いろいろなムービーが作成できそうですね。

Yahoo Webサービスの仕組み

 FlashムービーからWebサービスを利用するには,ざっくりと次の3つの仕組みがわかっていれば良いでしょう。

  1. 使用するWebサービスの仕組み
  2. ActionScript3.0からWebサービスへリクエストを作成する方法
  3. ActionScript3.0で名前空間を用いてXMLデータを取得する方法

 ひとつめの「使用するWebサービスの仕組み」から見て行きましょう。Yahoo!のWebサービスは,Yahoo!の検索エンジンや,動画等の強力な検索エンジンやデータソースを利用することができます(表1)。

表1●Yahoo!のWebサービスの一例
サービス 概要
Yahoo!検索 テキスト検索,画像検索,動画検索など,指定したキーワードを元にした検索結果を受け取れる
Yahoo!地図情報 指定したキーワードに対応した地図データを受け取れる
Yahoo!ニュース 指定したカテゴリのニュース情報を受け取れる

 これらのWebサービスは,REST(REpresentational State Transfer)方式で私たちが知りたいキーワードをYahoo!のWebサービスへと渡し,その結果をXML形式のデータで受け取ります(Yahoo!オークションWebサービスは,SOAP形式でリクエストを送る方法も用意されています。)。

 「REST方式」とは,どんな方式なのでしょうか。これは,ざっくりと言ってしまうと,「私たちが普段,Yahoo!やGoogleなどの検索エンジンで利用しているのと同じ仕組みで,検索したいキーワードを指定すると,その結果をXMLデータとして返してくれる」方式です(本当にざっくりなので,興味のある方は調べてみてくださいね)。

 例えば,「犬」というキーワードで検索する時のことを考えてみましょう。私たちは,Yahoo!で検索する際には,Yahoo!等のページに行き,検索キーワードとして,「犬」と入力しますね(図2)。

図2●検索ワードを入力しているところ
図2●検索ワードを入力しているところ

 検索ボタンをクリックすると結果が表示されます。このときのURLに注目してください(図3)。

図3●検索結果画面に表示されるURL
図3●検索結果画面に表示されるURL

 URLは,「http://search.yahoo.co.jp/search?p=%e7%8A%AC」のようになっていますね。ここで注目していただきたいのは,「search?p=%e7%8A%AC」の部分です。この個所のさらに「%e7%8A%AC」の部分,これは,「犬」という検索キーワードをURLエンコードした物ですから,「search?p=犬」という意味になります。つまり,「このキーワードで検索しますよ」という情報を,「search?p=検索キーワード」という形で送信しているわけですね。

 整理すると,検索エンジンではURLに,

検索エンジンのURL?パラメータ=値
という形で検索したいキーワードや,その他の情報を付加し,送信しているわけです。ブラウザを通じて,この形式でWebサーバーにリクエストを送ると,その結果の記載されたHTML形式のファイルが返されてきます。私たちは,このHTML形式のファイルを,ブラウザで表示して見ているわけですね(図4)。

図4●検索エンジンの処理の流れ
図4●検索エンジンの処理の流れ

 REST方式も,この方式と同じように,Webサービスを提供しているURLに対して,

WebサービスのURL?パラメータ=値
という形式でリクエストを送ります。すると,REST方式のWebサービスでは,HTML形式のファイルではなく,XML形式のデータを返してくる仕組みになっています(図5)。このXML形式のデータを受け取って,解析し,次の処理に活かしていくわけですね。

図5●REST形式のWebサービスの処理イメージ
図5●REST形式のWebサービスの処理イメージ