🐈

GASでtasksの内容をLINE Notifyを使って送信する方法

2021/07/09に公開

GASでtasksの内容を取得してアウトプットする方法

以下のコードを利用するとGASでtask内容を取得して、LINE Notifyへ送信することができます。
テンプレとなっていますので、tokenの部分だけご自身のトークンに直してください。

送信するためのコード

function getTaskLists() {
  let taskLists = Tasks.Tasklists.list().getItems();
  if (!taskLists) {
    return [];
  }
  return taskLists.map(function(taskList) {
    return {
      id: taskList.getId(),
      name: taskList.getTitle()
    };
  });
}

function getTasks(taskListId) {
  let tasks = Tasks.Tasks.list(taskListId).getItems();
  if (!tasks) {
    return [];
  }
  return tasks.map(function(task) {
    return {
      id: task.getId(),
      title: task.getTitle(),
      notes: task.getNotes(),
      completed: Boolean(task.getCompleted())
    };
  }).filter(function(task) {
    return task.title;
  });
}


function getTask(){
  
  const myTaskLists = getTaskLists();
  let text = '';
  const bar = '\n================\n'; 
  for(let j =0 ; j < myTaskLists.length; j++){
    let myList = getTasks(myTaskLists[j].id);
    let name = "\n" +  myTaskLists[j].name + "\n";
    let myTasks = getTasks(myTaskLists[j].id);
    
    for(let i =0 ; i < myTasks.length; i++){
      var title = myTasks[i].title + "\n";
      text += title;
    }
    text += bar;
  }
  return text;
}


function sendToLine(text){
 // 自身のトークンに置き換える
  let token = 'XXXXXXXXXXXXXXXXX';
  let options =
   {
     "method"  : "post",
     "payload" : "message=" + text,
     "headers" : {"Authorization" : "Bearer "+ token}
 
   };
   UrlFetchApp.fetch("https://notify-api.line.me/api/notify", options);
}

function main(){
  let text = getTask();
  sendToLine(text);
}

実行する関数はmainです。

GASでLINE Notifyでメッセージを送る方法

上記でtokenを置き変える場所があったと思いますが、下記を参考にTokenの取得をしましょう。
https://zenn.dev/articles/2079b11ed995c0

Discussion