こんにちはIT初心者のうえはらです。
今回は前回取得したぐるなびのアクセスキーを使って、ぐるなびのAPIをたたいてみたいと思います。
レストラン検索API
レストラン検索APIで住んでいる「浦添市」で好きな「ラーメン」を検索してみます。
function myFunction() { var gurunaviAPI = '********************';//取得したアクセスキー var url = 'https://api.gnavi.co.jp/RestSearchAPI/20150630/?'; url = url + 'keyid='+ gurunaviAPI; url = url + '&format=json'; url = url + '&address=浦添'; url = url + '&freeword=ラーメン'; var response = UrlFetchApp.fetch(url); var json=JSON.parse(response.getContentText()); var hit_count = json.total_hit_count;//件数確認 Logger.log(hit_count); Logger.log(json); }
UrlFetchApp.fetch(url)でAPIをたたけることはわかっていたので、urlにレストラン検索のURL、リクエストパラメーターにkeyid、format、address、freewordをそれぞれ設定しました。
まずは、やってみようなのでLogger.logでログ出力します。
出力内容は検索件数と、とりあえず、jsonのレスポンス内容です。
ちなみに、ログの表示は「Ctrl+Enter」です。
はいとりあえず、こんな感じで取得できました。
一件目はなんと!、家族みんな好きでよく行く
「五十代目哲麺縁 沖縄浦添店」
でした。
メモ帳にコピーして、パラメーター毎に改行してみました。
{rest= [{ parking_lots={}, pr={ pr_short=期間限定とろろラーメン登場! 追い飯付き!とろだくラーメン・・・780円 粉唐辛子が効いたピリ辛味!マグマラーメン・・・750円, pr_long=【ラーメンのこだわり】<BR>1. クリーミーな豚骨スープ<BR>豚骨を6時間、鶏ガラは3時間、じっくり別々に煮だし、<BR>オリジナル「マー油」で仕上げています。<BR>2. オリジナルの低加水の極細麺<BR>麺は、低加水のため、スープをよく吸い込みます。シコシコした歯ごたえで、麺の固さは<BR>やわらかめ、ちょいやわ、ふつう、ちょいかた、かため、ばりかた、はりがね、こなおとし<BR>8通りから選べます。<BR>3. 自分好みの1杯に! 麺のゆで方、味の濃さ、脂の量が調整可能<BR>トッピングも8種類から選べます。<BR>トッピングは、<BR>きくらげ、味玉子、白髪ネギ、青ネギ、のり、磯のり、チャーシュー、ネギチャーシュー<BR>8種類、120円~。 }, lunch={}, access={ note={}, line=ゆいレール, station=儀保駅, station_exit={}, walk=車10 }, code={ category_name_l=[ラーメン・麺料理, {@attributes={order=1}}], areaname_s=浦添, areaname=沖縄, areacode_s=AREAS8202, category_code_s=[RSFST08008, {@attributes={order=1}}], prefname=沖縄県, category_name_s=[ラーメン, {@attributes={order=1}}], category_code_l=[RSFST08000, {@attributes={order=1}}], areacode=AREA200, prefcode=PREF47 }, e_money={}, latitude=26.242103, flags={mobile_site=1, pc_coupon=0, mobile_coupon=0}, @attributes={order=0}, coupon_url={pc={}, mobile={}}, holiday=無, tel_sub=098-943-3002, tel=050-3490-3624, id=fb6d614, fax={}, longitude=127.726211, budget=850, address=〒901-2114 沖縄県浦添市安波茶3-2-10, image_url={shop_image1=https://uds.gnst.jp/rest/img/fx1x882p0000/t_0n5c.jpg, qrcode=https://c-r.gnst.jp/tool/qr/?id=fb6d614&q=6, shop_image2={}}, opentime= 11:00~24:00, update_date=2017-08-02 12:15:17, url=https://r.gnavi.co.jp/fx1x882p0000/?ak=4nhzN%2FVLihYDh%2FP%2B9BXWauXLheYT%2FzKoOrg0AxWyKX8%3D, url_mobile=http://mobile.gnavi.co.jp/shop/fb6d614/?ak=4nhzN%2FVLihYDh%2FP%2B9BXWauXLheYT%2FzKoOrg0AxWyKX8%3D, credit_card={}, name=五十代目哲麺縁 沖縄浦添店, name_kana=ゴジュウダイメテツメンエン オキナワウラソエテン, category=とんこつラーメン, party={} },
jsonでそれぞれ指定すれば値が得られるのはわかっているのですが、初心者なので、とりあえず見てみたいんです!
ふむふむ。API仕様に書いてあるとおりの順番ではないんですね。json形式で取り出せば、特に問題は無いですよね。
2件目はどのお店かなぁ?行ったことのあるところかぁ?と思っていると、なんと焼肉屋!! フリーワードカテゴリーも「category=韓国料理焼肉専門」。
3件目は?居酒屋!! フリーワードカテゴリーは「category=鮮魚 和風居酒屋」。
4件目にやっとラーメン店が出てきました。GASのログでは4件目までしか表示されませんでした。
なんで?
ぐるなびのサイトで検索するとどうなるかやって見ました。
結果は1件目は同じく「五十代目哲麺縁 沖縄浦添店」、2件目は「豚骨拉麺 昇家 」!ラーメン店が検索されてる!
う~ん。なんでかな~。しばしぐるなびのサイトを見ていると、、、気付きました!
ジャンルが「ラーメン・つけ麺」になっている!
ほっほ~。フリーワード検索だったからか。?? でも、2件目も3件目も「ラーメン」の文字は無いけどなぁ?
これ以上考えても仕方ないので、フリーワード検索だと
うまくいかないこともある
ということにしときます。
次は、ジャンルで検索してみたいと思います。
でも、哲麺の大業態コードは「category_name_l=[ラーメン・麺料理,」?
「ラーメン・つけ麺」じゃなーーーい!
これもなぞですが、ラーメン検索して、パスタが出てきても嫌なので(麺料理では出てこないかな?)、より正確に小業態コード「category_name_s=[ラーメン,」「category_code_s=[RSFST08008,」で検索してみます。
function myFunction() { var gurunaviAPI = 'f0d27ace9e15030daea61936198e238d'; var url = 'https://api.gnavi.co.jp/RestSearchAPI/20150630/?'; url = url + 'keyid='+ gurunaviAPI; url = url + '&format=json'; url = url + '&address=浦添'; url = url + '&category_s=RSFST08008';//ラーメンの小業態コード var response = UrlFetchApp.fetch(url); var json=JSON.parse(response.getContentText()); var hit_count = json.total_hit_count; Logger.log(hit_count); Logger.log(json); }
ログ確認すると、、、、はいできました。
次回は検索されたお店一覧を表示してみたいと思います。
コメント