Google Todo リストを Google Chat に毎日連絡させてみた
概要
Google Apps Script (GAS) と GASのToDoの拡張機能を用いて Bot が Google 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リストに入れるタスクに締切がないとエラーが出る