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サービスの処理イメージ

この先は会員の登録が必要です。有料会員(月額プラン)は初月無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら