ぐるなびAPIで店舗情報取得(2)
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2009-05-30
ぐるなび API を利用して、ぐるなびの画像やぐるなびのページ URL を取得してみました。ぐるなび API については、PHP(PEAR)のライブラリなども出ているようですが、汎用的に使わなければ独自に実装した方が早いです。また、最新の API バージョンが出た場合にも自分で対応できますからね。
まずは、API を利用するクラスを作成してみました。今回は、画像の URL 1 つと、クーポンページへの誘導のためにぐるなびのお店ページ URL を取得する仕様としました。また、電話番号を元に検索させるので、結果は 0 件または 1 件を想定しています。エラー制御は今回のソースからは省いています。
使い方はシンプルで、API 用の URL を作成し、それを下記の S_Gurunavi クラスのインスタンスに渡すだけです。あとは、requestRest() 実行後に、画像やページの URL を取得すれば完了です。毎回通信させるのも厄介なので、取得できたデータはキャッシュしておくといいと思います。
[実装例]
・サラトガ牧場
ただし、画像については最大で 2 種類しかなく、店内の写真や料理の写真はほとんどありません。お店のロゴ画像が多いのとサイズがバラバラなので使い勝手が非常に悪いです。
<?php
class S_Gurunavi {
private $cnt;
private $imageUrl;
private $couponUrl;
function S_Gurunavi() {
$this->cnt = 0;
$this->imageUrl = "";
$this->couponUrl = "";
}
function requestRest($apiUrl) {
// REST
$xml = simplexml_load_file($apiUrl);
if (!empty($xml)) {
$this->cnt = $xml->total_hit_count;
}
if ($this->cnt == 1) {
$this->imageUrl = $xml->rest->image_url->shop_image1;
$this->couponUrl = $xml->rest->url;
}
return $this->cnt;
}
function getCount() {
return $this->cnt;
}
function getImage() {
return $this->imageUrl;
}
function getCoupon() {
return $this->couponUrl;
}
}
?>
関連記事
上記の記事に関連する記事(最新の10件)です。


