GASでぐるなびAPIをたたいてみる!

GoogleAppsScript(GAS)
スポンサーリンク

こんにちは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);
}

ログ確認すると、、、、はいできました。

次回は検索されたお店一覧を表示してみたいと思います。

 

コメント