朝活を気持ちよく継続するために「ご褒美システム」を構築した

朝活を続けてかれこれ6ヶ月。

満員電車を避けるために始めたのですが、完全に習慣化しました。

自分でもビックリ。

これはもうご褒美をあげるしかないよね!

ということで下記ブログを参考に「ご褒美システム」を構築しました。

筋トレを継続する技術

GASとSlackの勉強もできて一石二鳥です。

ご褒美を用意する意味

がんばった後になにか褒美があると、自然とやる気がでてきます。

パブロフの犬的な。そのうち朝活と聞いただけで涎がでるようになるはず。

ご褒美システムの仕組み

下記一連の操作をGASとSlackで自動化します。

  1. Googleフォームに必要な値を入力
  2. 送信ボタンを押してスプレッドシートに自動記録
  3. 同時にSlackへメッセージを飛ばす。←これがご褒美。

Googleフォームで簡単入力

朝活の開始時刻と活動内容を入力します。

お気に入りに登録して、すぐに起動できるようにしておきます。

少しでもやる気が出るようオレンジ色にしました。

朝活用フォーム

スプレッドシートに自動記録

どれだけ努力してきたのかを数値やグラフにし、見える形にするとモチベーションが上がります。

Googleフォームとリンクし、自動で記録させます。

スプレッドシートの画面

美女からのご褒美。。。という形にした

どうせなら美少女に応援してもらいたい!

ということでメッセージはルーシーちゃんに送ってもらうことにしました。

ルーシー ルーシー

ミライ系NEW HORIZONでもう一度英語をやってみる」の登場人物。

画像をあらかじめSlackに登録しておきます。

Slackへメッセージを飛ばすスクリプト

フォーム送信ボタンの押下をトリガーに、Slackへメッセージが送信されるスクリプトを用意します。

//フォームが送信されたら実行
function onFormSubmit(e) {
  postToSlack();
}

//Slackに送信
function postToSlack(){
  var url        = 'https://slack.com/api/chat.postMessage';
  var token      = 'xxxx'; // Slackのトークン
  var channel    = '#xxxx'; // SlackのChannel名
  var text       =  message();
  var username   = '【ルーシー】';
  var parse      = 'full';
  var icon_emoji = ':lucy:'; // Slackに登録した絵文字の名前
  var method     = 'post';

  var payload = {
      'token'      : token,
      'channel'    : channel,
      'text'       : text,
      'username'   : username,
      'parse'      : parse,
      'icon_emoji' : icon_emoji
  };

  var params = {
      'method' : method,
      'payload' : payload
  };

  var response = UrlFetchApp.fetch(url, params);
}

// 投稿するメッセージの内容を生成
function message() {
  // ここにメッセージ内容のスクリプトを記述する
  return String(message);
}

メッセージはランダム生成

飽きないようにメッセージをいくつか用意して、ランダムに生成するようにしました。

// ランダムな数字を生成
function message(){
  var rand = Math.floor( Math.random() * 3 ) ;
  var rand2 = Math.floor( Math.random() * 3 ) ;
  var randMessage = randomMessage(rand);
  var randMessage2 = randomMessage2(rand2);
  var message = randMessage + "\n" + randMessage2;
  return String(message);
}

// ランダムでメッセージを生成
function randomMessage(rand){
  switch (rand){
  case 0:
    var randomMessage = "Great!"
    return String(randomMessage);
  case 1:
    var randomMessage = "Good work!"
    return String(randomMessage);
  case 2:
    var randomMessage = "You're always doing your best!"
    return String(randomMessage);
  }
}

// ランダムでメッセージを生成その2
function randomMessage2(rand){
  switch (rand){
  case 0:
    var randomMessage = "Keep working on it!"
    return String(randomMessage);
  case 1:
    var randomMessage = "You’re really improving!"
    return String(randomMessage);
  case 2:
    var randomMessage = "Let's do it together again!"
    return String(randomMessage);
  }
}

実際のSlackメッセージ

こんな感じになりました。

スラックのメッセージ

まとめ

いつもストイックに取り組んでいた朝活が一気に面白くなりました!

やったね╭( ・ㅂ・)و ̑̑ グッ !"