Google Todo リストを Google Chat に毎日連絡させてみた

概要

Google Apps Script (GAS) と GASのToDoの拡張機能を用いて BotGoogle Chat に毎朝残ってる ToDo を通知するようにしてみた.

手順

まず,マイドライブにGASファイルを作成し,以下のコードをコピペする.

function report_todo() {
  var url = '自身のチャットボット (Webhook)のURLを記入' //あとで変更するので一旦そのままで.
  var summary_todo = get_todoList();
  
  if (summary_todo) {
    var botMassage = {'text' : summary_todo}
    
    var options = {
      'method' : 'POST',
      'heders' : {
        'Content-Type' : 'application/json: charset=UTF-8'
    },
      'payload':JSON.stringify(botMessage)
  };
    
    var result = UrlFetchApp.fetch(url, options);
    Logger.log(result);
  }
}

function get_todoList() {
  var taskLists = Task.Tasklists.list();
  var summary_msg = '';
  if (taskLists.items) {
    for (var i = 0; i < taskLists.items.length; i++) {
      var taskList = taskLists.items[i];
      summary_msg = getTasks(taskList.id);
    }
  }
  
  return summary_msg;
}

function getTasks(taskListId) {
  var tasks = Tasks.Tasks.list(taskListId);
  var msg = '';
  
  if (tasks.items) {
    for (var i = 0; i < tasks.items.length; i++) {
      var task = task.items[i];
      msg += task.due.split('T')[0] + '\t' + task.title + '\n';
    }
  }
  
  return msg;
}

コピペしたままでは使えないので,GASのコードをコピペしたウィンドウの上部にある「リソース→googleの拡張サービス...」を順にクリックする. もし, "Edit Project Name" と出てきたらわかりやすい名前を適当につける.(例:todo_report) 新たに出てきた ”Advanced Google Services” の下のほうに "Task API" があるので右の部分をクリックして ON にしてOKをクリックする.

google chat で新たにチャットルームを作成し, webhook の設定を行い,URLを取得する.

取得したURLをGASのコードの該当部分に記入する.

GASのウィンドウで上部の時計アイコンをクリックし,トリガーを用いて通知が来るタイミングを設定

※ToDoリストに入れるタスクに締切がないとエラーが出る