Hotpepper API
- 追記
Services_Hotpepperを開発されている方がいますので、何かサービスを作成する際はそちらを使われる事をお勧めします。
過去と他人はかえられないが、未来と自分はかえられる - Services_Hotpepper
GANCHIKU.com » とりあえず、ソースコード吐いていいかね。Services_HotPepper-0.1.0?(訂正)
-
-
- -
-
書いてみた。
http://api.hotpepper.jp/reference.html
使い方
$req = new Hotpepper; $req->setKey('guest'); // 現時点ではguestで固定 $res=$req->GourmetSearch();
こんだけ。
$optionsに色々セットすると色々出来るらしい。
require_once 'HTTP/Request.php'; require_once 'XML/Unserializer.php'; define('HOTPEPPER_API_URL', 'http://api.hotpepper.jp/'); define('HOTPEPPER_API_VERSION', 'V1'); class Hotpepper { var $queryType = array('GourmetSearch', 'LargeServiceArea', 'ServiceArea', 'LargeArea', 'MiddleArea', 'SmallArea', 'Genre', 'Budget'); var $key; function Hotpepper(){} function GourmetSearch($options=array()) { $options['queryType'] = 'GourmetSearch'; $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function LargeServiceArea() { $options = array('queryType' => 'LargeServiceArea'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function ServiceArea() { $options = array('queryType' => 'ServiceArea'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function LargeArea() { $options = array('queryType' => 'LargeArea'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function MiddleArea() { $options = array('queryType' => 'MiddleArea'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function SmallArea() { $options = array('queryType' => 'SmallArea'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function Genre() { $options = array('queryType' => 'Genre'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function Budget() { $options = array('queryType' => 'Budget'); $res=$this->_sendRequest($options); if (PEAR::isError($res)) { return $res; } return $this->_bindResult($res); } function _bindResult($result) { $obj = new StdClass(); foreach ($result as $key => $val) { $obj->{$key} = $val; } return $obj; } function _sendRequest($options) { if (!isset($options['queryType']) || !in_array($options['queryType'], $this->queryType)) { return PEAR::raiseError('queryType not set'); } $reqUrl = HOTPEPPER_API_URL . $options['queryType'] . '/' . HOTPEPPER_API_VERSION . '/'; $req = new HTTP_Request($reqUrl); $req->setMethod('GET'); $req->addQueryString('key', $this->key); foreach ($options as $param => $value) { $req->addQueryString($param, $value); } $res=$req->sendRequest(); if (PEAR::isError($res)) { return $res; } if ($req->getResponseCode() != '200') { return PEAR::raiseError('Hotpepper API Error'); } $res=$req->getResponseBody(); if (!$res) { return PEAR::raiseError('Hotpepper returns Empty Body'); } $xml = new XML_Unserializer(); if (!$xml->unserialize($res)) { return PEAR::raiseError('XML Unserialize Error'); } return $xml->getUnserializedData(); } function setKey($key) { $this->key = $key; } }