街しらべ -Yahoo! APIを使ってRemix
January 25, 2006 9:57 PM by ooi1
Yahoo!の検索結果をRSSにするサービスにひきつづき、Yahoo! APIを使ったサンプルを作りました。
街しらべ
調べたい街の名前を入れると、それをキーワードにして
- ぐるなびに登録された飲食店(3件ずつ)
- Yahoo!画像検索結果(5件ずつ)
- flickrタグ検索結果(5件ずつ)
が表示されます。
作り方
SDKのPerlサンプルコードをベースに、
- イメージ検索を追加。同様のことをflickrAPIでもやってみた。
- 検索サイトをぐるなびに指定
- Y!グルメは、サマリに「こんにちは、ゲストさん」とかが入っちゃうのでいまいちだった。
- PerlソースをUTF-8に変更
- スタイルシート追加
をしてます。
ほとんどサンプルコードなので、ソースコードを見たい方はいったんY!のSDKをごらんください。
感想
僕は実はPerl初心者で初めてWebサービスを使ったのですが、Y!のAPIはREST、つまり
- すべてのパラメータをURLにくっつけて送信
- 結果がXMLで返ってくる
これだけなので非常にとっつきやすかったです。どうプログラムを書けばよいか分からなくても、とりあえずブラウザのURL欄にリクエストURLを書いて送信すればXMLが返ってくるので、あとは
- フォームから値を取得して、リクエストURLを生成する
- 返ってきたXMLを解析していい感じに表示する
これだけをコーディングすればいいわけです。駆け出しにとってはSOAPよりも分かりやすいかも。
flickr も基本的には同じでいけます(SOAPもありますが)。ただ、Y!のXMLはタグのネストで結果を返してくる
<Result><Title>pa021228 11</Title>
<Summary />
<Url>http://www.aabb.jp/photo/pa021228-11.jpg</Url>
<ClickUrl>http://www.aabb.jp/photo/pa021228-11.jpg</ClickUrl>
<RefererUrl>http://www.pacifica.ne.jp/photo/ph021228-3.html</RefererUrl>
<FileSize>87.2kB</FileSize>
<FileFormat>jpeg</FileFormat>
<Height>450</Height>
<Width>600</Width>
<Thumbnail>
<Url>http://re2.mm-a1.yimg.com/image/40682828</Url>
<Height>93</Height>
<Width>125</Width>
</Thumbnail>
</Result>
これに対して、flickrはXMLのattributeに値が入って くる、
<photos page="2" pages="89" perpage="10" total="881">
<photo id="2636" owner="47058503995@N01"
secret="a123456" server="2" title="test_04"
ispublic="1" isfriend="0" isfamily="0" />
<photo id="2635" owner="47058503995@N01"
secret="b123456" server="2" title="test_03"
ispublic="0" isfriend="1" isfamily="1" />
<photo id="2633" owner="47058503995@N01"
secret="c123456" server="2" title="test_01"
ispublic="1" isfriend="0" isfamily="0" />
<photo id="2610" owner="12037949754@N01"
secret="d123456" server="2" title="00_tall"
ispublic="1" isfriend="0" isfamily="0" />
</photos>
さらにこのように、画像のURLが直接返って来るのではなく、いくつかのコードが書いてあるだけなので、これを元に画像のURLを生成する必要があります。
この違いがあるため、値の加工は別の方法にしないといけないです。それでもたいした手間ではないですが。
欲を言うと、文字コードを意識しないでも検索できたり、ゲッター/セッターみたいなAPIをもつPerlモジュールを提供してくれたらもっと簡単に利用できるのではないでしょうか(flickrはperlだけでなくいろんな言語のモジュールが提供されてます)。
しかしこれだけ敷居が低いと、アイデア勝負!早く作ったもん勝ち!ですね。
最後に、この街しらべ、Y!検索のスタッフブログで紹介していただきました。休日を犠牲にした甲斐がありました。どうもありがとうございます!
TRACKBACKS
? 「街しらべ」が紹介されています! by たたみラボYahoo検索ウェブサービス/FlickrAPIを使ったサンプルとして作成した地域系マッシュアップサイトの「街しらべ」(概要はこちらをご覧ください)が、お...