【make】お店の特売日がすぐにわかるLINE Botをつくりたい！

# 特売日っていつだっけ……
皆さんも普段、買い物しているお店がいくつかあると思います。
でも、「○○店の特売日は20日で……」
　　　「あっ、この店も20日じゃなかったっけ？」
   　　　「○○のセールは昨日だった、忘れてた！」

　　ということがないでしょうか。
  

  それを調べるために各お店のアプリを開いたり、何度も検索するのは面倒ですよね。


 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/382b6f2b-67de-441e-8eb9-f277dc65f77e.png" width=30%>

# 初心者だけど作ってみたい！

こんなツールがあったらいいな、と思いついたが吉日、比較的簡単に本格的なBotが作れる！とわかった「LINE Bot」に挑戦。
LINEを開き、お店の名前を入力するだけで、わかりやすく説明してくれるLINEBotを作ってみました。
完成したBot動画の後に、作った過程を紹介していきます！


### こんな感じのBotが作れました！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/ea51dc71-a200-4fb2-b0b7-fe4fea1d89c6.gif" width=55%>



# さあ、作ってみよう！
### 今回使用したツール
・LINE
・make
・Gemini


### Makeを使う前に↓
LINE Divelopersを登録しLINE公式アカウントを作成、botにするための設定をします。


[こちら](https://lineapiusecase.com/ja/api/webhook.html#fourth-content-first "【図解あり】LINEのWebhook入門 ─ 初心者でも使える設定方法とイベント活用")を参考にどうぞ！




### 設定のあと↓
今回はわかりやすく、
①LINEにメッセージ（特売日を知りたいお店の名前）を入力
②Geminiが探してくれる
③LINEに返信してくれる


という流れで作ってみました。
 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/2121bc30-bcca-435a-b91e-60575a0ef4ea.png" width=
 80%>


それぞれのモジュールの中身は以下のようにになりました。

1.まずはmakeを使う前に作ったLINE WebhookのURLをLINEモジュール「アクションを起こす方」に貼り付けます。これで、まずはメッセージを送ることができます
 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/77f71960-c2f9-4734-8099-794401e3832e.png" width=
 80%>

2．次に、Google Geminiモジュールを使い、入力されたメッセージを探してもらいます


 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/b53e4f8d-d499-455f-87bb-6c9beeb0be79.png" width=
 60%>


 3．最後に、もう一つLINEモジュールを使います。これは、「探した結果をLINEで返す」ために必要なものです
 画像の下の方にある、「Result」というのが、2のGoogle Geminiモジュールに探してもらった情報です
 <img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/ba52cbce-6fcb-4c37-bb17-bf97f952e948.png" width=
 60%>


## 時間のかかったところ


 Geminiにとってわかりやすいテキスト表示方法の指示を書くところが難しかったです。
最初は↓の指示を入力していたのですが

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/a450ed2d-e954-4ffd-9cc1-ed12af320120.png" width=55%>

同じ文章を何度も繰り返したり、日付が知りたいのに曜日でしか探してくれなかったり、長文メッセージが流れてきたり……


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/66309505-019c-4ad3-a4f9-93b647f34ce9.png" width=80%>


そこで、「単語」と「省略」という単語を指示文に使用すると……
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/084368c3-8486-478d-922c-347220413aa2.png" width=55%>



# 改めて、完成したものがこちら！
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/ea51dc71-a200-4fb2-b0b7-fe4fea1d89c6.gif" width=55%>



これで「アクションを起こす→さがす→探した結果を返す」の流れを経て、名前を入れるだけで、特売日の情報を教えてもらうことができました。




# 本当は……
　上記の作り方へたどり着く前に、HTTPやJSONを使用してLINEBotを作ろうとしていたのですが、どうしてもうまくいかず、今回の方法で作成しました。



<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4079343/ac5f99a2-7bde-4a6d-8ebc-8b06da94c633.png" width=90%>



# 次への挑戦
ぜひ！Geminiを使わずにリベンジしたいと思っています！！
また、特売日の発信だけではなく、リマインダーに設定してくれたり、前の日に「明日は○○店の特売日です！」といった通知機能も付けてみたいと思っています。

完成したら再びQiitaの記事に載せるので、お楽しみに！!


>引用：LINE API Use Case　
>
>【図解あり】LINEのWebhook入門 ─ 初心者でも使える設定方法とイベント活用
[https://lineapiusecase.com/ja/api/webhook.html#fourth-content-first ](https://lineapiusecase.com/ja/api/webhook.html#fourth-content-first "【図解あり】LINEのWebhook入門 ─ 初心者でも使える設定方法とイベント活用")