SlackのBOTにゴミの日をお知らせしてくれる機能をつけてみた

プログラム
スポンサーリンク

今日が何のゴミを出す日か忘れる時がたまによくあります。

ゴミ出しカレンダーを見て確認するのですが、見るのも忘れる時があるんです。

ということで、前回作ったSlackのbotのれいちゃんが朝一でゴミの日を教えてくれるスクリプトを作りました。

スポンサーリンク

作ったもの

Googleカレンダーにゴミ捨て用のカレンダーを作成し、そこに登録したタイトルをGAS(Google Apps Script)を使ってSlackに投稿します。

ここを参考にしました。

今日の予定をまとめて教えてくれるslackの秘書BOT - Qiita
#概要本日の予定を秘書が教えてくれたらうれしいですよね!slackボットで作ってしまいましょう。秘書の「秘書美」が、毎朝予定を教えてくれます。GASでGoogleカレンダーの予定から今日の予…

Botの作り方はこちら

SlackにBOTを入れてみた①BOTの登録と簡単な返信
家族でslackを使っています。情報の共有や晩ごはんの食べたいもの、帰ります連絡などなどです。前まではLINEを使っていましたが、どうも情報系は見返すのが大変だったので家族にslackを強要しました。せっかくなので、うちで飼って...

Googleカレンダーにゴミの日を登録

新規カレンダーを追加

左メニューの「」をクリックします。

メニューが新たに出てきますので「新しいカレンダー」を選択します。

名前を入れて「カレンダーを作成」ボタンを押します。

新しくカレンダーができました。

ゴミの日を追加

普通にカレンダーに予定を入れていきます。

予定の題名にゴミの種類を入れます。

日付と繰り返しの設定をします。

カレンダーを先程作った「ゴミ出し」を選択します。

これをゴミ出し分設定をしていきます。

 

スポンサーリンク

IDの準備

botのWebHookのURLの取得

前回作ったアプリのページに行きます。

Slack API: Applications | Slack

喋らせたいアプリを選択します。

左メニューの「Incoming Webhooks」をクリックします。

Webhook URL」のアドレスが今回使うものになります。

コピーする時はアドレスの右にある「Copy」を押すとコピーされます。

ゴミの日カレンダーIDの取得

Googleカレンダーを開き、作成したゴミ出しのカレンダーの右の3点のメニューをクリックします。

メニューが出ますので、「設定と共有」をクリックします。

カレンダーIDを覚えておきます。

 

スポンサーリンク

Googleスプレッドシートでスクリプトを作成

スクリプトエディタを起動

GoogleDriveを開きます。

Google Drive: Sign-in
Access Google Drive with a Google account (for personal use) or Google Workspace account (for business use).

新規」の「Google スプレッドシート」を順番にクリックします。

ツール」の「スクリプト エディタ」を選択します。

スクリプトコード

エディタにスクリプトコードを貼り付けます。

詳しい内容は参考リンク先を参照してください。

function myFunction() {
    
  var list = "";
  var text = "";

  list = listupEvent("ここにカレンダーIDを貼りつける");

  Logger.log(list);

  if (list != "") {
    text = "おはよー!今日は" + list + "の日だよー"
  } else {
    text = "おはよー!今日は出せるゴミはなさそうだね…"
  }
  
  var payload = {
    "text" : text,
    "channel" : "#general"
  }

  postSlack(payload);

}

function listupEvent(cal_id)
{
  var list = "";
  var cal = CalendarApp.getCalendarById(cal_id);
  var events = cal.getEventsForDay(new Date());
  for(var i=0; i < events.length; i++){
    s = "";
    s += events[i].getTitle();
    Logger.log(s);

    list += "【" + s + "】";
  }

  return list;
}

function postSlack(payload)
{
  var options = {
    "method" : "POST",
    "payload" : JSON.stringify(payload)
  }

  var url = "ここにWebhook URLを貼りつける";
  var response = UrlFetchApp.fetch(url, options);
  var content = response.getContentText("UTF-8");

}

テスト

実際に投稿できるかテストしてみます。

再生」ボタンを押すと実行できます。

最初に実行するときには承認の許可の確認が必要です。

実際に投稿されているか確認してみましょう。

レイちゃんがちゃんと教えてくれましたね。

カレンダーになにも入っていなければ投稿はしません。

テストするときも今日の日付になにか登録をしておいてください。

リマインダーの設定

毎朝レイちゃんが教えてくれるようにリマインダーの設定をしておきます。

スクリプトエディタの「編集」の「現在のプロジェクトのトリガー」を選択します。

まだ何も登録されていませんので「トリガーが〜してください。」をクリックします。

今回は、毎朝7時〜8時の間に通知をしてくれるように設定しました。

最後に「保存」ボタンを押します。

これで毎朝レイちゃんが教えてくれるようになりました。

 

スポンサーリンク

さいごに

今回はゴミ出しの日を設定しましたが、同じことを繰り返せばいろいろなことを定期的に教えてくれるようになります。

便利ですよね。

今度はレイちゃんと会話ができるようにしていきたいですね。

コメント