LINEBotでご飯ガチャを引こう

生きるために一番大切なことって、ご飯ですよね。

今日のご飯、決まってます？
毎日のご飯に迷っているそこのあなた
わたしが決めてあげます

![小ライス.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/70d1c25e-8212-74cd-7a1b-74284e09c79d.gif)


## なにか送るとご飯が返ってくるLINEBot
結論から言うと、なにか送るとご飯を返してくるLINEBotを作りました。
なぜかというと、わたしが毎日のご飯に迷っているからです。
ご飯ガチャです。
今回はテストみたいな形で作ったため、だれかの好きな食べ物ランキングで作りました。

https://note.com/sakiho_1115/n/ne4f30adc9955?sub_rt=share_pw

家や職場の近くのお店ガチャに改造することもできます。

## 使ったもの
-LINE Developers(LINE)
-Make
-Googleスプレッドシート

主にMake上での操作になります。
スプレッドシートは食べ物リストを作るために使用しました。

## 作成準備
LINE DevelopersとMakeの登録ですが、それは割愛します。
わたしの習熟度ですが、教えてもらいながら、
いわゆるオウム返しbotと、天気を調べるbotを作成した程度です。
普段Power Automate Desktopを使っているのですが、
新しいツールの触りは難しいですね。


LINEBotは手軽にそれっぽいものが作れるみたいなので、
なにを作ろうかといろいろ考えていました。（かっこ内は感想）
・日付を入れると、自分の勤務シフトを返してくれる（できそう）。ついでに雨降るか（ちょっと大変そう）
・冷蔵庫の中にある食材を送ると、それを使ったレシピを出してくれる（初めてには難しい）
・毎日のご飯の案を出してくれる。（作った）
・防災備蓄品の名前を入れると、賞味期限教えてくれる（形だけ作った）

などなど、いろいろ考えてはいたのですが、
ほとんどのことに言えるのが、別にLINEBotにしなくても、普通に検索したら良くない？
ただ、作ることで勉強になってより高度なことができるようになるなら、作る価値はあります。

そんなこんなで、ご飯ガチャを作ることにしました。

## 作成の流れ
さて、今回作ったMakeのフロー（フローでいいのか？）の完成図はこんな感じになりました。
![LINEbot　MAKE　フロー図.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/76309c52-5b23-992d-262c-71f5627e858d.jpeg)
そんなに難しいことはなく、左から、
LINEになにか送る→ごにょごにょ（後述）→1～100に対応したメニューを選ぶ→LINEで返信
という感じです。
メニューはこれです。
![スプシ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/666fc47d-9c10-8412-e39e-dfe43a1db461.jpeg)
<br>
**「7，ねるねるねるね」**

<br>
<br>
はい
<br>
頭を悩ませたところが1点あります。
ごにょごにょの部分なのですが、ご飯ガチャなので、ランダムにする必要があります。
上から順番に流していくのもできそうだったのですが、それだと芸がないのでやめました。

ツールを見ていたら「Tools」というのがあり、いろいろ遊べそうだったのでちょっと触ってみました。![tools random.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/1c6ea116-5408-251a-0833-11f97e1a0131.jpeg)

やったー　簡単にランダムでできそう！！！
やってみました。

<br><br>

エラー、なぜだ。

![まじか！.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/5cfdb7f9-2ee8-2ff9-7495-203289d8fb8a.jpeg)
これを見ていただくと、0.7992311・・・となっているのがわかります。
調べてみると、このランダム、0～1でランダムな値を取るみたいです。
それがわかればこっちのもんだ。

![random.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/11d72023-7812-a228-c6f1-3d10f7fe52f0.jpeg)

0～100にして、整形しました。
これで1～100まででランダムな値が取れました。
この記事では40秒で終わってますが、実際には試行錯誤したり調べたりで結構時間かかってます。

ということで、なにか送ればメニューを返してくれるLINEBotが完成しました。
ちなみに、APIを利用してご飯のレシピを返す、みたいなのも考えてたのですが、
APIの有効期限が切れているなどで断念しました。APIあればできそうです。

## できたこと
今回、ランダムな値を取って1～100のメニューを選んで返す、というのをやりました。
できたこととしては、
①LINEが来たら→返す
②1～100のランダムな値を取る
③スプレッドシートの値が一致したら対応したものを返す
（コマンドを見ていると、それから始まるとか含むとかもあったのでそれでも応用できそう）
くらいですかね。

スプレッドシートの対応したものを返すとかはすぐ作れそうな気がします。
ここでは紹介しませんが、裏でAPIを利用してランダムで犬の画像を返すっていうのは作りました。


## 課題
ランダムで値を取る、というのはもっとスマートなやり方がありそうですし、
この方法だと100までしかできないです。
調べたらGAS？を利用してランダムを作ることができるみたいです。
まだまだ学べる事がたくさんありそうです。

## 終わりに
今回初めて記事を書いてみました。
デジタルツールもほぼ初心者で、たまたま機会があってLINEBotを触ってみました。
今後も他のツールを触っていくと思います。

それではまた

<BR>

## ◆追記（2024/7/27）
ChatGPTを使えば一瞬でそれを越えられます。

![GPT使うとすごい.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/d4fcc048-96bd-7758-d024-0e419635fadf.jpeg)

<img width="400" alt="04ba7c5b-1411-4172-bb67-c85ea71f5a52.jpg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3800173/1d860b5c-08b8-0296-54a7-bfb214bb6063.jpeg">

はい。
悲しいけど、これが現実です。
でもこういうことを積み重ねていくことで成長していく ~~（と思わなければやっていけない）~~ のです。

<br><br><br><br>

初稿：2024/07/10
２稿：2024/07/14（タイトル編集、gifサイズ変更、誤字修正）
３稿：2024/07/27（最後の追記）