クイックノート

ちょっとした発見・アイデアから知識の発掘を

【GASの活用】出張先のグルメ情報を当日メールで配信する

出張の度に問題になるのが、
どこでご飯を食べるか問題です。

グルメ情報サイトの存在が当たり前になった現代では、
出張の直前や出張中に、出張先周辺のグルメ情報を検索することでしょう。 出張の多い人は、一種のルーティンとなっているかもしれません。

毎回同じことをするのは少しスマートではないので、
この操作をGASを使って自動化してみました。

細かいコードはここでは載せず、
大まかな流れだけを示して、
GAS(Google Apps Script)の使い方の一つとして紹介します。

概要

普段の予定は、Google カレンダーに入力していて、
出張の場合は「出張名@場所」のような形で入力するようにしています。

GASでは、Google カレンダーから予定を受け取って、
出張の当日に、出張先周辺のグルメ情報をメールで通知するように、
スクリプトを組むことにします。

全体の大まかな流れとしては、
次のようになります。

  1. Google カレンダーから当日の予定を取得する
  2. 出張先の場所情報・座標を抽出する
  3. グルメサイトで出張先周辺の情報を取得する
  4. Gmailで出張先周辺の情報を自分宛に送信する

f:id:u874072e:20190710111725p:plain:w400
出張先グルメ情報自動通知の流れ

上の手順を、毎日定期的に実行するようにし、
出張がない日は何もしないようにしておけば、
出張当日だけメールが届くようになります。

1. Google カレンダーからの情報取得

GASでは、Googleカレンダーと連携するための
「CalendarApp」というサービスが用意されています。

これを使って、簡単に当日の予定を取得できます。

2. 出張先の場所情報を抽出

Googleカレンダーでは「場所」を別欄で登録できますが、
面倒なのでイベントタイトルに「主張名@場所」の形で登録しています。

正規表現で抽出

このように決まったフォーマットで登録されていれば、
正規表現を使って"@"の後ろの文字を抽出すれば場所の抽出が可能です。

もちろん、ちゃんとGoogleカレンダーの「場所欄」で登録していれば、
そちらから取得すればOKです。

代表地点の座標取得

上で取得した「場所名」を元にグルメサイトで検索をかけても良いのですが、
「品川」のような地名だと、品川区を広く検索した結果、
かなり遠方の情報が返ってくるかもしれません。

また、「〇〇ビル」のような場所名だと、
そのビルに入っている飲食店しか検索されないかもしれません。

欲しいのは、出張先から一定の距離内にあるようなお店の情報ですから、
「場所」を座標で表した方が良さそうです。

GASでは、Googleマップと連携することで、
場所の名前からその場所の座標を取得することができます。

これは「Maps」サービス「Geocoder」を利用して簡単にできます。
ただし、一日の使用回数の上限が小さめに設定されているようなので、
そこだけ注意が必要です。

3. グルメサイトで検索する

グルメサイトでは、APIを提供しているサイトもあり、
それを活用すれば、簡単にグルメ情報が取得できます。

今回は「ぐるなび」のAPIを利用しました。
ぐるなびAPIのページから、
新規アカウントを発行し「APIキー」を取得すれば、
httpsのクエリを投げるだけで店舗情報をJSON形式で取得できます。

JSONファイルは、GASのJSON.parse()でパースできます。

4. Gmailでグルメ情報を送信する

後は取得した情報を見やすく整形して、
Gmailで送信すればOKです。

Gmailの送信もGASの「MailApp」サービスを利用すれば簡単にできます。

これで、出張当日に下のようなグルメ情報のメールが届くようになります。

f:id:u874072e:20190710112648p:plain:w200

まとめ

GASを使えば、自分で出張先のグルメ情報を毎回調べなくても、
出張に合わせて、当日に周辺のグルメ情報をメールで通知することができることを紹介しました。

GASを使ってサービスを連携して、
一つの新しい価値を作り出す様子が感じられる例かなと思います。

プライバシーポリシー