LINE Notifyを使って薬の服用時間をリマインドしてくれるBotを作った話
なぜ作ったのか
以前通院した時、病院から就寝前に飲むための薬をもらいました。この薬を時折飲むことを忘れてしまい、どうにかできないかなと考えていました。
歯磨きのように習慣化できればいいのですが、時折忘れたり服用タイミングを過ぎてしまったりと習慣化させるまでがちょっと大変な場合があります。そのため習慣化を手助けするために、薬の時間になったらお知らせをしてくれる方法を考えました。
お知らせの方法として何が良さそうか考えたところ、LINEをよく使っているので、LINEでお知らせできれば気づけるはずと思いつきました。そのため、時間になったらLINEで通知してくれるBotを作り始めました。
なお、私1人のみへの通知もできるのですが、他の人も気付けて薬を飲むことを促せるようにLINEグループに通知するようにしました。
作り方
以下記事を参考に作りました。細かく書かれており、とても助かりました。
また、通知をさせたいグループを「お薬のお知らせ」の名前で、あらかじめ作っておきます。
ここでは、参考にした記事と少し異なる箇所、ちょっとしたトラブルについて記載します。
Google Apps Scriptのコード
参考にした記事にあるコードを貼り付け、投稿したいメッセージ、発行したトークンを記載しておきます。
作成したコードは以下の通りとなります。
function postContent() {
var content = "\n\n薬は飲みましたか?寝る前に飲みましょう!"
sendPostContent(content);
}
function sendPostContent(content) {
var token = ['発行したトークン'];
var options = {
"method": "post",
"payload" : {"message": content },
"headers": {"Authorization": "Bearer " + token}
};
UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}
通知のタイミングを指定
Google Apps Scriptの左側にある時計アイコンを選択し、「トリガーを追加」ボタンを押します。
今回は寝る前に通知してほしいので、以下のように日付ベースで時間を指定します。
なお、2021年5月10日時点では、時刻の選択は範囲指定のみ可能です。
- 時間ベースのトリガーのタイプを選択: 日付ベースのタイマー
- 時刻を選択: 午後10時~11時
トラブル: LINE NotifyをLINEグループに招待せずに通知する
私が作成した際、LINE NofityをLINEグループに入れ忘れていました。
その状態で、Google Apps Scirpt上でテスト用に実行したところ、LINE Notifyとのチャットに、アカウント未招待であるメッセージが届きました。
メッセージに書いてある通り、LINE NofityをLINEグループに追加することで解決できます。
作成結果
夜10時過ぎごろに、LINE Notifyから通知が届きました。
おわりに
LINE NotifyもGoogle Apps Scritpも未経験でしたが、参考にした記事が詳しく書いてあったため、1時間もかからずに作り上げることができました。
コードをなるべく書かずにサービスをすぐに作り上げられるのは良いですね。
この記事が誰かのお役に立てれば幸いです。
Discussion