Excite Smartphone Engineer's Blog

2013年 07月 26日

【PHP】食べログAPIを使ってレストラン画像表示

はじめまして、エキサイトの松下(新卒1年目)です。
この春からエキサイトでエンジニアとして働いてます。

ほんの数ヶ月前のことなのに、エンジニア研修やってた頃が遥か昔のことのように感じます・・・
ということで今回は記憶をたどりながら研修で作ったブツを紹介することにします。



研修最終課題
習ったこと(html,css,php,DB,jquery)を万遍無く使ってなんか作れ
・・・確かこんな感じの課題でした。(怒られそう)
ということで自分はこんな感じのサイトを作ってみました。
e0291676_23552271.png

e0291676_23555534.png
自分はお店探すときに異様に時間かかっちゃう人なので、
周辺のお店をランダムに表示するサービスを作ってみました。(実用性皆無ですが・・・)

・主要機能
- ログイン/ログアウト
- 食べログAPIを利用して周辺のお店(今回は固定)をランダムに表示
- お店のお気に入り登録
- お気に入りリスト一覧表示、編集

今回は食べログAPIを利用して欲しいレストラン情報を取得/表示する方法について紹介します。
指定のURLにアクセスすることで、XML形式で結果を出力することができます。
利用するには、ここで利用登録申請をします。
登録完了するとアクセスキーが発行されます。自分は申請から3日くらいかかりました。

・レストラン情報API
都道府県や最寄駅、緯度・経度を指定することで、そこに該当するエリアのレストラン情報を最大1200件まで取得することができます。
リクエストパラメータはこちら
http://user-help.tabelog.com/api_manual/#rst-api

利用例
http://api.tabelog.com/Ver2.1/RestaurantSearch/?Latitude=35.648&Longitude=139.731&Datum=world&SearchRange=medium&Prefecture=tokyo&ResultSet=large&PageNum=1&Key=アクセスキー

緯度/経度を直接指定して、その周辺のお店情報の1ページ目を取得しています。
これにブラウザでアクセスすると

という風にXMLが帰って来ます。これでレストランコード(Rcd)、URL等が取得出ます。

・レストラン画像取得API
レストランコードをパラメータに指定することで、そのお店の画像URLを取得出来ます。
パラメータはこちら
http://user-help.tabelog.com/api_manual/#photo-api

利用例
http://api.tabelog.com/Ver1/ReviewImageSearch/?Key=アクセスキー&Rcd=13010793

以下の様なXMLが帰ってきます。

画像サイズは3種類あります。

・PHPから使う
simplexml_load_fileを使ってXMLをパースし、オブジェクトに代入します。

これで取得した画像を表示できます。

・最後に
一番の敵はAPIのアクセス制限でした。公式にも書いてますが一日あたりのアクセス回数は200回です。
大量の画像表示したり何回も動作テストしてるとあっという間に使い果たします。
また、
レストラン情報取得→Rcdを元にレストラン画像取得→画像表示
となると、表示まで結構時間がかかります。
Google先生「ajax使えば非同期通信できるよ^^」
とのことなので、次回はその辺りを紹介できたらと思います。

by sp_tech | 2013-07-26 17:20 | PHP | Comments(0)


<< UITableViewCell...      Tier変更間近!?Appli... >>