PHP(Laravel)でホットペッパーグルメサーチAPIを使った飲食店検索を行ったときの記録。
リクルート WEBサービスとは
リクルート WEBサービスは、リクルートが保有するデータベースを外部から利用するためのWeb APIを一括提供するサービス。
ホットペッパーグルメサーチAPIドキュメント
ホットペッパーグルメサーチAPIドキュメントはこちら。
https://webservice.recruit.co.jp/doc/hotpepper/reference.html
API利用方法
左メニューの「新規登録」リンクから、APIキーを発行する
APIキーをつけて、以下のようなURLにアクセスすると、
緯度: 34.67、経度: 135.52から半径3Km圏内のお店の検索結果がおすすめ順でXML形式で返される。
https://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=[APIキー]&lat=34.67&lng=135.52&range=5&order=4
やりたいこと
ある場所(緯度・経度で指定)から半径3km圏内にある飲食店を調べたい。
リクエストパラメータについて
リクエストパラメータは色々あるが、以下の項目を考慮してAPI呼び出しを行うといい感じだった。
パラメータ | 項目名 | 説明 | 値 | |
key | APIキー | APIを利用するために割り当てられたキーを設定します。必須項目 | ||
lat | 緯度 | ある地点からの範囲内のお店の検索を行う場合の緯度です。デフォルト | (例) 35.669220 | |
lng | 経度 | ある地点からの範囲内のお店の検索を行う場合の経度です。 | (例) 139.761457 | |
range | 検索範囲 | ある地点からの範囲内のお店の検索を行う場合の範囲を5段階で指定できます。たとえば300m以内の検索ならrange=1を指定します | 1: 300m 2: 500m 3: 1000m (初期値) 4: 2000m 5: 3000m | |
datum | 測地系 | 緯度・経度の測地系を指定できます。world: 世界測地系、tokyo: 旧日本測地系。初期値は world。 | (例) world | |
type | 出力タイプ | レスポンス項目の項目数を指定できます。 liteを指定すると、主要項目のみ出力されます。出力項目はレスポンスフィールドを参照してください。 credit_card、specialを指定することで、クレジットカード、特集をレスポンスに付加できます。 +でつないで指定することで、複数指定が可能です。 例:type=credit_card+specialと指定することで、クレジットカードと特集両方をレスポンスに付加可能です。 | lite:主要項目のみ credit_card:クレジットカードをレスポンスに付加 special:特集をレスポンスに付加 指定なし:クレジットカード、特集以外をすべて出力(初期値) | |
order | ソート順 | 検索結果の並び順を指定します。おススメ順は定期的に更新されます。 ※ 位置検索の場合、「4:オススメ順」以外は指定に関係なく、強制的に距離順でソートされます。 | 1:店名かな順 2:ジャンルコード順 3:小エリアコード順 4:おススメ順 初期値はおススメ順。位置から検索を行った場合は距離順 | |
count | 1ページあたりの取得数 | 検索結果の最大出力データ数を指定します。 | 初期値:10、最小1、最大100 | |
format | レスポンス形式 | レスポンスをXMLかJSONかJSONPかを指定します。JSONPの場合、さらにパラメータ callback=コールバック関数名 を指定する事により、javascript側コールバック関数の名前を指定できます。 | 初期値:xml。xml または json または jsonp。 |
実装方法について
「PHPで楽天トラベル施設検索APIを利用する」の記事を参照してください。