出張が多い私が、初めての場所でお昼のランチを決めるLINEBotを作れるのか？

## １．LINEBot初心者の挑戦

皆さん、こんにちは。見た目は細く、心は熱い、Hatch699と申します。
友達からは「はっち」と言われているので、気軽に、はっちさんと呼んで下さい。
Qiita初投稿です！（温かい目で以降の記事を見守っていただけると幸いです:bow_tone1:）


私、見た目は細いのですが、よく食べます！
毎日、仕事の関係で出張が多く、
初めての出張先で、何を食べるか迷うことが、結構あるんですよね。
皆さんも、初めて訪れる場所で、ご飯屋さんは何があるか、ワクワクする方もいらっしゃるのではないでしょうか。

そういう時は、ネットで食べログとか検索されると思いますが、
最近、DXの世界に飛び込んで、絶賛勉強中の私が思ったことが、
**出張先の場所を入れたら、オススメのランチがランダムで１個出て来る。**
食べたいものが決まっている時は、そこに行けば良いし、
ランダムだと、自分の思っていないところへ行くワクワク感があるかなと。
そんなものが出来たらいいなと思って、頑張ってみることにしました。

## ２．自分でAPIを探して挑戦！
まずは、APIbankで使えるAPIが無いかを探しました。

https://www.apibank.jp/ApiBank/main

自分で調べながら、JSONに入れて試したりしたのですが、
上手く行かず挫折…

## ３．無料APIで挑戦！
周りの詳しい方に質問したり、アドバイスをもらって、無料APIで挑戦。
[こちら](https://foodish-api.com/)にある、無料API「Foodish」を使って、
LINEにキーワードを送ると、ランダムに食べ物の写真が返って来る
Botを作りました。

#### Makeの構造
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/859f6442-0ade-8567-c9ef-6d7abc56fe9e.png)



HTTPの中に、httpから始まるURLを入れた後に/api/images/1.Events Massage.Textを入れるのがポイントです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/2bc64d07-312a-14e4-c910-80e188d866db.png)


JSONの中は　3.Dataを入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/d21234ff-2343-17be-0f9c-5c824538916b.png)


LINEはTypeをImageにします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/31ba33f8-63d3-e09e-5560-89ed8a6396d9.png)


これで、設定は終了。
LINEには、以下のように写真が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/11d516c6-02b6-5fc2-c2bb-5f66abc7a828.png)

例えば、pastaと入力するとパスタの写真がランダムで出て来る
LNEbotが完成しました。
pizzaとかdessertなど、登録キーワードは反応して写真がランダムで出ますが、
ohagiと入れても、登録が無いので、エラーとなります。
（そら、そうだ！笑）


pastaと入力するとパスタの写真が出て来る…
う～ん。ランチを何にするか、じゃなくなっている。
<font color="Red">これは、やりたかったことじゃない！！笑


## ４．Googleスプレッドシートに挑戦！
~~出張先の場所を入れたら、オススメのランチが出て来る。~~
改め、
**数字を入力したら、ジャンルと店名が返って来る**
というGoogleスプレッドシートを作ることにしました。
私が未熟なので、決まったものが返って来る「オウム返し」しか出来なかったですが、
数字を誰かに決めてもらって、何が出て来るか楽しむ。
というのも、良いかなっと思って、作ってみました。

・LINEBotの設定
[こちら](https://developers.line.biz/ja/docs/messaging-api/building-bot/)のサイトにMessaging APIを使って、LINEBotを作成する方法があります。

・Makeの構成は、このような感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/7e897e70-f608-4483-e323-129e7ce69441.png)


まず、Googleスプレッドシートに数字・ジャンル・店名を入れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/db9b1b13-39e2-09ba-79d0-00c9913ab1b3.png)

MakeにGoogle SheetsのSerach Rowsを選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/2b318b72-cae6-d6a2-d31e-00b5859110de.png)

Google Sheetsの条件は、以下の内容です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/c47ad8f3-a16a-f33a-07d1-a03af6a0fb9c.png)

LINEの条件は、以下の内容です。
Textにジャンル（B）と店名（C）を入れて、同時に返してもらうように設定しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/007cfa33-ffe2-36da-e16d-77e29bee682a.png)

Routerの設定は、名前（A）の登録しているものだけが返って来る仕組みです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/c4fb2114-d239-ab8c-277a-8307d90c901f.png)

登録が無い場合は、「スーパー・コンビニの弁当」にしました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3836548/11bad29f-3593-7bf1-e588-a0b498a524f5.png)
お弁当も安くて美味しいですよね！


## ５．LINEBot完成！
LINEBotの操作状況は、こんな感じです。

https://x.com/aeon699/status/1823306662343749966

:::note warn
LINEの操作動画を保存するやり方は、以下のサイトを参照したのですが、
[スクリーン レコード アイコンの説明サイト](https://support.google.com/android/answer/9075928?hl=ja)
[Windows＋Gの説明サイト](https://www.microsoft.com/ja-jp/biz/smb/column-windows-10-screen-record)

私のスマホが古くて、スクリーンレコードが無かったり、
パソコンに制限がかかっているのか、Windows＋Gで画面録画が
出来なかったので、
撮影した動画をXに投稿して、記事に載せています。
手ブレせず動画を録画出来る方法を探して、改善したいと思います。

:::

#### LINEBotが出来上がった感想
当初考えていたものからは、少し違っていますが、
初めて作って、形になったことがすごく嬉しいです。
現状は、同じ数字を入れれば、過去と同じお店の紹介になってしまいますが、
もっと勉強して、ランダムで出て来るようにするとか、
改良を重ねたいと思います！

:::note 
### 【参考】使用ツール
・LINEBot
・Make
・JSON
・Googleスプレッドシート
:::


#### ・本当は、こういうものが作りたかった記事

https://qiita.com/hcpmiyuki/items/19b8456ab2a9c5dc7fe5


https://qiita.com/cog1t0/items/ce21c80626af47c1c1d0