LINE Message APIを使用し毎日のゴミ出し日通知Botを作成(実装編)
2021 年 9 月 10 日 by itotこんにちは。itotです。
前回、LINE Bot作成の準備編を記載しました。
今回は、実装と投稿までの設定方法について記載していきます。
前回、LINEグループの識別ID取得までできたと思います。
それを基に以降を進めてください。
(6) 識別IDの取得まで実施出来たら…
ここからゴミ出しBOTの作成です!!
識別IDが取得できているスクリプトから、ゴミ出しbot用に書き換えを行います。
(webhokの再度設定を怠りました。。)
同じような記事があり、ほとんどを参考にコードを書きました。。書きっぷりについてはご容赦ください。。
https://qiita.com/kanta_yamaoka/items/dd830cf23ff59353824d
送受信のリファレンスについては、LINEの公式ページに載っています。
https://developers.line.biz/ja/docs/messaging-api/sending-messages/#methods-of-sending-message
※一部コードブロックでうまく表示されずに文字を切っております。。↑の参考にしたURLで確認ください。
// メッセージ本文を格納する変数
var body = '';
// Dateオブジェクト関連の処理の準備
var date = new Date();
// 特定の曜日の前日に通知するために、Dateオブジェクトのインスタンスdateの日時を1日早める
var today = date.getDate();
date.setDate(today + 1);
var dayIndex = date.getDay()
var day = ["日", "月", "火", "水", "木", "金", "土"][dayIndex];
// 第何週目かを取得
var dayCount = getDayCount(date);
// 2週目 or 4週目かどうか
var is2ndOr4thWeek = dayCount % 2 == 0
//--ゴミ出しの曜日のパターンと前日に送信するメッセージの定義--//
switch (day) {
case '月':
case '木':
body += '明日は可燃ゴミの日です。';
break;
case '火':
if(is2ndOr4thWeek){
body += '明日は大型ごみの日です。'
}else{
body += '明日は不燃ごみの日です。'
}
break;
case '水':
body += '明日はリサイクルプラの日です。'
break;
case'金':
if(is2ndOr4thWeek){
body += '明日は資源ごみ・有害ごみの日です。'
}else{
body += '明日はその他プラの日です。'
}
break;
}
//LINE Messaging APIでの実際のグループへのメッセージ送信処理
//翌日が土曜日、日曜日の場合はメッセージ送信をしない
if (body != '') {
UrlFetchApp.fetch(url, {
'headers': {
'Content-Type': 'application/json; charset=UTF-8',
'Authorization': 'Bearer ' + '管理画面で表示されるアクセストークン',
},
'method': 'POST',
'payload': JSON.stringify({
'to': 'グループ識別ID',
'messages': [{
'type': 'text',
'text': body,
}]
})
})
} } //
(7) 動作確認
上記で保存後、実行ログを押すことで動作確認できます。
↓このように設定したメッセージが表示されることが確認できると思います。
※たくさんメッセージがきてますが、気にしないでください。
(8) 定期実行設定
次の日のゴミ出し確認を行うため、毎日実行を行うよう設定します。
今回は午後8時~午後9時の間に実行するように設定しました。
左のタブから時計マークを押し、「トリガーを追加」を押します。
以下の状態に設定を保存します。(実行する関数はゴミ出しメッセージを行う関数を選択)
以下、実際にメッセージが来ていることが確認できます。(この時の設定は午後7時~午後8時の設定)
(9) 今後について
ゴミ出しの日が本当にあっているか、不安なので画像も一緒にメッセージで送ってくれるように改良する予定です。
また、通知機能についてLINEで通知が欲しいものについては、BOTにやってもらおうと思います。
(10) まとめ
LINEBOTの作成は、難しそうと思っていましたが、結構簡単にできます。(Message APIを使用しなければコーディング不要でできます)
BOTの作成ってどうやるんだっけ、となったときに参考にしてみてはいかがでしょうか。