自分の怒りポイントはどこ？アンガーログをつけられるLINE Bot作ってみた

# イヤイヤ期との格闘
こんにちは、毎日やんちゃっ子とバタバタ過ごしている1人目育児中のワーママです。
興味はあっても手をつける機会がなかったデジタルの勉強を、思い切って手を挙げて始めてみました。
新しく知った知識は活用したい！！乏しい知識と、必死の検索で取り組んでみました。
![S__28958732(1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/ba997a94-de24-e45e-29b4-1e640073033e.jpeg)


### 自我が強くなってきた3歳児。イライラすることがたくさん…
**魔の2歳、悪魔の3歳**なんて、うまいこと言ったな…と思ってしまうほど。
どんどん主張の激しくなってきた息子　VS　予定や家事をこなしていかねばならない私
**「もういいかげんにしてーーーーーーーーー！！！！！！！！」**
なんて怒ってしまうのは日常茶飯事。
寝かしつけ中のボーッとする時間に後悔ばかり…。
あんなに怒らなくてもよかったな、もっと感情をコントロールできたらいいのに。
そんな状態のここ半年、なんとかしなきゃ！！と目についたのがアンガーマネジメントでした。

### 怒りの傾向を知る「アンガーログ」
よく耳にするのが **「6秒ルール」**。
すこーしだけ理性的になるために必要な時間だそうです。
その間に色々思考するといいらしいのですが、その一つに
**怒りの記録をとる(＝アンガーログ)** というのがあることを知りました。
記録を振り返ると自分がどんなことでどれくらい怒るのかという傾向が見えてくる
(＝対策を考えることもできる！！)というものです。
でもね、…これが続かないんです。一人でワナワナしながらメモ取るの寂しいんです。
相づち打って共感してくれるようなBotがあったらどうだろう！？
ということで、作ってみました。

# イライラしてるの？話聞くよ。Botさん
### 話聞いて記録してもらう。
イライラしたことをメッセージで送る
⇒それはイラッとするわ！どれくらい怒った？と聞いてくれる
⇒怒りレベルを「1～10」で送る
⇒そっかー、おつかれ。記録したよ。
という動きです。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">アイディアから自分で考えたLINE Bot形になった〜！<br>もう少し改良したいけど、とりあえず今できてる部分^ ^<a href="https://twitter.com/hashtag/protoout?src=hash&amp;ref_src=twsrc%5Etfw">#protoout</a> <a href="https://t.co/MwrD2MHEFG">pic.twitter.com/MwrD2MHEFG</a></p>&mdash; 紺 (@navy_blue919) <a href="https://twitter.com/navy_blue919/status/1676609130646372353?ref_src=twsrc%5Etfw">July 5, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 使用ツール(全部初めて使ったものたち！)
+ Line Deveropers
+ Make(旧integromat)
+ Googleスプレッドシート

### お話聞いて、相づち打って、記録してもらうための仕組み
Makeのシナリオはこんな感じになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/2348f060-fa2e-765c-2925-c2789aefaba1.png)
①LINEからのメッセージを受け取る
②(イラッとした出来事の場合)1つめの相づちメッセージを送る
③(イラッとした出来事の場合)メッセージの内容をスプレッドシートに記録し、シートのどの行に記録したか記憶する
④(怒りレベルの場合)2つめの相づちメッセージを送る
⑤(怒りレベルの場合)怒りレベルの数字を、出来事と同じ行の次の列に追加記録する
### 困ったポイントは2つ
+ シナリオが動く順序の設定の仕方がわからない。
+ イラッとした出来事と怒りレベルが同じ行に記録できない。 

ここでかなりの時間を使いました。
先人の記事の尊さを実感。

**○分岐のアイディア**

https://qiita.com/katourina0120/items/cbb1885f5e0c55ddc313

**○スプレッドシートの最終行を見つける方法**

https://qiita.com/murakani/items/27bd6aad51ba90d10871

ご参考にさせていただきました！(というか、ほぼ答えでした！)
本当にありがとうございますm(u_u*)m
### 分岐のポイント「フィルター設定」
今回のBotでは記録して欲しいことを **2つに分けて** います。
**1.イラッとした出来事**
**2.どれくらいイラッとしたか(怒りレベル)**
送られてきたメッセージがどちらなのか判断するためにフィルターを設定しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/8ba684c0-b6fc-adc9-5b8a-2385699d52d0.png)
「数字以外」のフィルターには文章に「！」が含まれることを条件に。
イラッとした出来事に「！」をぶちまけて入力すると反応します。
「怒りレベル」のフィルターには「1以上and10以下」という条件を。
1～10の数字で怒り具合を判定して入力すると反応します。
### イラッとした出来事と怒りレベルを同じ行に記録したいのに…
これが、本当に苦戦しました…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/1bd8ff80-b132-fa2a-d6b7-ecedca3a8b89.png)
この子、最初使っていなかったんです。
その状態だと…スプレッドシートへの記録が、メッセージごとに違う行になってしまうんです…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/b50c2317-3911-26dd-f2d5-79066b96e33d.png)
記事を参考にルート⑤のGoogle Sheetsモジュールを「Add a Row」⇒「Update a Row」にしたところでどん詰まり。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/41124f0f-10d4-b0ce-91e9-6c606b15ccd4.png)
画像にある「Row number」の部分に「最終行」を入れたいのに、どう入力すればいいか分からず…。
(入力制限があって、「整数」が入っていないとエラーになってしまいます。)

探しに探して、やっと見付かりました！！！！
とっても感動！！！！一人で声出ました(笑)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/b0bfc4f8-5a80-7125-ceb3-64caac8991d0.png)
サイドバーにある「Data store」から記録してほしいものの指示を入力して記録します。
私は画像右側の赤枠の部分を「Text」にしててうまくいかなかったんです。
言われてみると、そりゃそうだー！！！と思ってしまいました…。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/f81b877d-1431-def2-c660-d2e803391bff.png)

そして各モジュールを画像のように設定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/24669203-c014-f2a5-f008-19ed9da776a8.png)
「Data store」の「行」の部分は整数を持っているので
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/74f93519-f5f1-f768-3187-76673563a040.png)
「Row number」に「行」を入れてもエラーが出ません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3459210/59a23cbc-279b-8d06-34b6-c94d788b7115.png)
**感動。** 

# プッシュ通知して欲しいし、本当は振り返りもしたい
今回の一人での制作チャレンジはここまででした…！！
だけど、本当は三日坊主にならないようにプッシュ通知もして欲しい。
そして、週に1回の頻度で記録の振り返りもしたい。
相づちメッセージももう少し気の利く感じにしたい。
(ランダムとかできたらいいなぁ)

**作ったことでもっともっととやりたいことがでてきました。**

ここまでのことをまとめるに当たって、色々な方の記事を拝見し
**こんな方法ならできるかも！！！**
というものを見付けることもできました。
アップデートしてまた記事にまとめたいと思います！

ここまでお付き合いいただきありがとうございました^^

:::note info
「プッシュ通知」と「ランダム返信」実現しました！
改良版の記事、公開しました！是非見てみてください^^
もっともっと寄り添ってくれるBotに成長してます！
:::


https://qiita.com/navy-blue919/items/966d650a969b87725a29