ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回

【GAS】今日の予定を自動的にLINEに送信する方法(LINE アクセストークンの取得方法)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- タスク(ToDoリスト)を読み込む方法がわかります。
- 読み込んだタスクをスプレッドシートやLINEに出力できます。
なので、サクッとマスターして
と答えてあげてください。
いただいた質問

【GAS】今日の予定を自動的にLINEに送信する方法(LINE アクセストークンの取得方法)
質問です。
今日の予定と同時にその日に登録しているタスクもまとめてLINEに送信したいのですが、可能ですか?
タスクを取得し出力する
動画はこちら
【コピペでできるGAS】タスク (ToDoリスト) を取得しスプレッドシートやLINEに出力する方法
シートはこちら
※クリックするとシートが開きます。
準備 TasksAPIを有効にする
Step1.
Google Cloud Platform
Google Cloud Platform lets you build, deploy, and scale applications, websites, and services on the same infrastructure as Google.
を開きます。
以下のような画面が表示されます。
①「私は、・・・・・・の利用規約に同意します。」をチェックします。
②「同意して続行」をクリックします。
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スプレッドシートに取り込む
こちらの記事を参考にさせていただきました。
コメント