如何用Google Script获取并修改Google Tasks任务备注
搞定Google Tasks API的备注字段获取与修改
嘿,我来帮你解决Google Tasks API里备注字段的获取和修改问题~
获取备注字段
不管是单个任务还是整个任务列表的备注,都可以通过API的get或list方法拿到,返回的任务对象里notes字段就是咱们要的备注内容:
1. 获取单个任务的备注
function getSingleTaskNotes() { // 替换成你的任务列表ID和目标任务ID const tasklistID = "你的任务列表ID"; const taskid = "目标任务ID"; // 调用get方法获取完整任务详情 const task = Tasks.Tasks.get(tasklistID, taskid); // 提取备注字段 const taskNotes = task.notes; // 示例:把备注写入当前表格的A1单元格 SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange("A1").setValue(taskNotes); }
2. 获取任务列表中所有任务的备注
如果要批量拉取所有任务的备注,可以用list方法:
function getAllTasksNotes() { const tasklistID = "你的任务列表ID"; // 获取任务列表下的所有任务 const tasks = Tasks.Tasks.list(tasklistID).items; if (tasks) { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); let currentRow = 1; // 遍历每个任务,写入标题和备注 tasks.forEach(task => { sheet.getRange(currentRow, 1).setValue(task.title); // 处理无备注的情况,避免空值 sheet.getRange(currentRow, 2).setValue(task.notes || "无备注"); currentRow++; }); } }
修改备注字段
你之前尝试的patch方法是对的,但可能有些细节没处理好,下面是正确的修改代码,顺便帮你踩坑:
function updateTaskNotes() { const tasklistID = "你的任务列表ID"; const taskid = "目标任务ID"; // 替换成你要设置的新备注内容 const newNoteContent = "这是我更新后的新备注"; // 构建更新资源,只需要包含要修改的notes字段即可(patch是部分更新) const resource = { notes: newNoteContent // 如果需要同时修改其他字段,比如status,再添加对应的键值对即可 // status: "needsAction", // completed: null }; // 调用patch方法更新,建议加上updateMask明确指定更新的字段,避免意外修改其他内容 const updatedTask = Tasks.Tasks.patch(resource, tasklistID, taskid, { updateMask: "notes" }); // 日志输出更新后的任务详情,方便验证 Logger.log("备注已更新,任务详情:" + JSON.stringify(updatedTask)); }
你之前代码的小问题提示
notes:description这里,如果description不是你提前定义好的变量,会直接报错,要换成具体的字符串或者已定义的变量- 不需要修改的字段(比如
status、completed)不用放进resource里,patch只传需要更新的字段更高效 - 加上
updateMask参数可以明确告诉API只更新notes字段,避免因为API默认行为意外修改其他内容
内容的提问来源于stack exchange,提问作者Sheils
相关产品推荐
相关产品推荐

