Node-RED+LineBOTで健康管理チェックの予定だった！

初めての物つくりで頭の中にあるアイデアと技術がなかなか思うように進まず悔しいです。
会社での健康管理チェックの改善策ように考えました。

##やりたい事
毎朝ルーティーンでLineBotよりプッシュメッセージきて、
メッセージに対してのユーザの返信がそのままスプレッドシートに反映される事です。
ルーティーンに来るメッセージは下記になります。
・本日の天気予報
・「本日の体調は大丈夫ですか？」
　⇒問に対して「はい」「いいえ」又は「〇」「✖」で回答。

##使用
・LineBotアカウント
・Googleアカウント
・Node-REDアカウント
・steinアカウント
・Spreadsheet

##作業
##①Node-REDを立ち上げ下記のFlowを作成
![node-red全体.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/25ab86ce-ade1-4db0-56ee-f041842f1144.png)
★全体のフロー

##②天気予報
![１-１.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/4c1d960a-6baa-3e7c-c922-f326e7e1f9c3.png)
![1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/5f983edf-f133-6df6-6933-996dd30de281.png)
★OpenweathermapのAPIをしたため、営業が固定になっている部分があり
　Changeノードで天気予報を日本語に変換する作業を追加しました。
![1-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/3c0e24a3-4298-b664-1940-dde4a7e2c3ec.png)
★Injectノードの詳細
![1-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/b8618c5c-87b1-6ef0-eefb-96417475b726.png)
★openweathermapノードの詳細
![1-5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/5c851ae3-45e5-d6fb-0c26-5593f4e0439a.png)
★Line PushMessageノードはLINE Developer(SecretとAccessTakenとUserid)を入力します。
![1-6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/3175b08b-bc04-b57d-53a4-5238a33d01d6.png)
★最後にdebugノードの詳細

##③健康チェックの問い
![2-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/c8fade35-abbd-c606-1daf-5a5f7988b08a.png)
★1回だけの問いの場合はこれで行けますが、定期的に連絡来るようには
　下記の方法（繰り返し⇒指定した日時）でする事ができました。
![2-1-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/1897a860-65f8-2634-454a-c09a8d019cd2.png)
★Injecノードの詳細
![2-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/0c52313d-c2fa-5788-71ec-7ec6dd860e6f.png)
★LINE BloadcastMessageノードはLINE Developer(SecretとAccessTaken)を入力します。
★debugノードは天気予報で使用した内容と同じです。

##④スプレッドシートのAPIで連携
LINEBot内で返信した内容をスプレッドシートに行こうする作業では、
SteinでスプレッドシートのAPIをゲットする事が出来たが、
返答分をうまく繋げる事が出来ず残念です。

色々な方法を調べ実施しました。
・Injectノード（文字列で「はい」⇒SteinノードでスプレッドシートのAPIを繋ぐ）
　試しにinjectボタンを押してもスプレッドシートには「はい」という文字が
　反映されませんでした。
![3-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/e84ea8d6-95f4-e381-b380-65c2b6ba046a.png)
★Injectノードの詳細
![3-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/d5143ebf-5af0-fdc8-d34a-5ff91b123e2c.png)
★stein-addrowsノードでスプレッドシートのAPIを繋ぎます。
　stein-addrowsはNode-REDのパレットの追加からのノードを追加する事が出来ます。
![3-3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/494858f2-3e1d-0876-69c0-2f7ec0817e2a.png)

##‣GAS（Google APPs Script)でスプレッドシートと連携
　スプレッドシートをGAS（Google APPs Script)からLINEBotに繋げる方法も
　やってみましたが、ネット上に出ているコードをコピして貼り付けて少し編集するだけで連携が出来るはずなんですが、
　今回、私は繋ぐこともできませんでした。やり方又はコードの編集方法が間違っていたのかもしれません。
![GASでLINEからスプレッドシート.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/46b022b9-69d9-4aa8-4d32-641070e8ac04.png)

##■結果
LINE上での最終結果としましてはこのような感じになりました。
![IMG_6333.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1806084/1dfa6121-a9a8-98cb-4531-b6f5161f6fe4.jpeg)

##■まとめ
以上が業務改善のために健康管理チェックの自動化を考えていたのですが、
技術がともなわず未完成のままとなりました。
もの作りの初心者で上記を含め完成させるために良い方法/改善案などございましたら、
ぜひコメントをお待ちしております。

最後まで読んでいただきありがとうございます。