今日までのタスク(ToDoリスト)をシートやLINEに出力する方法

LINEとの連携

LINEとの連携一覧

ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

【GAS】今日の予定を自動的にLINEに送信する方法(LINE アクセストークンの取得方法)
  • Googleカレンダーの今日の予定がLINEに送信されます。
  • Googleカレンダーを開かなくても良いので便利です。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、

    • タスク(ToDoリスト)を読み込む方法がわかります。
    • 読み込んだタスクをスプレッドシートやLINEに出力できます。

    なので、サクッとマスターして

    と答えてあげてください。

     

    いただいた質問

    【GAS】今日の予定を自動的にLINEに送信する方法(LINE アクセストークンの取得方法)
  • Googleカレンダーの今日の予定がLINEに送信されます。
  • Googleカレンダーを開かなくても良いので便利です。
  • 質問です。
    今日の予定と同時にその日に登録しているタスクもまとめてLINEに送信したいのですが、可能ですか?

     

    タスクを取得し出力する

    動画はこちら

    シートはこちら

    ※クリックするとシートが開きます。

    準備 TasksAPIを有効にする

    Step1.

    Google Cloud console

    を開きます。

    以下のような画面が表示されます。

    ①「私は、・・・・・・の利用規約に同意します。」をチェックします。
    ②「同意して続行」をクリックします。

    Step2.

    ①「Tasks API」を検索します。

    Step3.

    ①「Google Tasks API」をクリックします。

     

    Step4.

    ①「有効にする」をクリックします。

    これで、「Tasks API」が有効になりました。

    今度は、スクリプトエディタで「Tasks API」を使用できるようにします。

     

    準備 サービスの追加

    Step1.

    スクリプトエディタを開きます。

    ① スプレッドシートを起動し「拡張機能」ー「Apps Script」をクリックします。

    Step2.

    ①「サービス」をクリックします。
    ②「サービスを追加」ウインドウの「Tasks API」をクリックします。
    ③「追加」をクリックします。

    これで、準備OKです。

     

    スクリプト

    タスク(ToDoリスト)の取得
    /**
     * Google Tasksからリストを取得
     * @return {Array} 取得結果の二次元配列
     */
    function getLists() {
      const lists = Tasks.Tasklists.list().getItems() // リストを全て取得
    
    
      let table = new Array(); // 配列初期化
      for (let i = 0; i < lists.length; i++) {
        table = table.concat(getTasks(lists[i])) // テーブルにデータを追加
      }
      return table
    }
    
    
    /**
     * Google Tasksのリストから今日が期限のタスクを取得
     * @param {TaskList} taskList 取得対象リストのオブジェクト
     * @return {Array} 取得結果の二次元配列
     */
    function getTasks(taskList) {
      const tasks = Tasks.Tasks.list(taskList.id).getItems() // リストからタスクを取得
      const table = new Array() // 配列初期化
    
    
      if (tasks) {
        for (let i = 0; i < tasks.length; i++) {
          let row = new Array()
          if (tasks[i].due) {           //期限があるもの
            let due = Utilities.formatDate(new Date(tasks[i].due), 'Asia/Tokyo', "yyyy/MM/dd")
            // console.log(due)
    
    
            //今日が期限のものを抽出
            if (due == Utilities.formatDate(new Date(), 'Asia/Tokyo', "yyyy/MM/dd")) {
              // console.log("今日が期限のタスク")
              row.push(taskList.title)   // リスト名
              // row.push(tasks[i].parent)  // 親タスク
              row.push(tasks[i].title)   // 件名
              // row.push(tasks[i].status)  // ステータス
              row.push(due) // 期限
              // let updated = tasks[i].updated ? new Date(tasks[i].updated) : ""
              // row.push(updated) // 更新日時
              row.push(tasks[i].notes) // 詳細
              console.log(row)
              table.push(row) // 配列に追加
            }
          }
        }
      } else {
        Logger.log(`リスト「${taskList.title}」にタスクはありません`)
      }
      return table
    }
    使用例
    function calendarToLine() {
    
    
      let text = ""
    
    
    
      text += '\n' + '■今日が期限のタスク\n'
      text += GetTodayTask()
    
    
      console.log(text)
      // sendToLine(text);//LINEにデータを送信する
    
    
    }
    
    
    
    
    function DspTask() {
      const sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ToDoリスト")
      let table = getLists()
      sh.getRange(2, 1, table.length, table[0].length).setValues(table)
    }
    
    
    
    /**
     * 今日のタスクをテキストで返却する
     * @return {String} タスクの一覧
     */
    function GetTodayTask() {
    
    
      let table = getLists()
      let str = ""
    
    
      for (let i = 0; i < table.length; i++) {
        str += table[i][1] + '\n'
      }
      // console.log(str)
    
    
      return (str)
    }
    
    

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    Googleカレンダーから今日の予定をGoogleスプレッドシートに取り込む
  • 今日の予定をスプレッドシートに取り込むことができます。
  • GASをスプレッドシートから実行する方法がわかります。
  • Googleカレンダー関連

     

     

    こちらの記事を参考にさせていただきました。

    コメント

    タイトルとURLをコピーしました