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の作成ってどうやるんだっけ、となったときに参考にしてみてはいかがでしょうか。

TrackBack