我一直在尝试使用Google脚本任务API从电子邮件中创建新任务。我已经成功地创建了TasksList,并使用以下两种方法在这些列表中创建了任务。但是,我一直试图通过使用可选的“父”资源来创建子任务,但是运气却很差。我试图复制谷歌任务中可用的任务“缩进”功能,它使tak显示为前面任务的子任务。有人用API成功地让它工作了吗?
方法1
taskListId = getTaskListID("My Projects");
var taskDetails = {
title: "Task 1",
notes: "This is a child task",
parent: "Project A"
};
Tasks.Tasks.insert(taskDetails, tasklistId);
方法2 :-
taskListId = getTaskListID("My Projects");
var newTask = Tasks.newTask().setTitle(title);
newTask.setParent("Project A");
Tasks.Tasks.insert(newTask, tasklistId);
在这两种情况下,脚本都会在任务列表(“”)下创建一个任务("Task 1"),但我不能让它在现有任务(“项目A")下显示为子任务(缩进)任务。
有人能弄清楚这件事吗?
发布于 2021-03-29 04:20:38
实际上,@vijay-j是对的。不能直接设置任务位置。在创建子任务时,必须设置参数previous
和parent
。
请参阅https://developers.google.com/tasks/reference/rest/v1/tasks/insert
请参阅https://developers.google.com/google-apps/tasks/params
在Javascript中添加示例,创建具有两个子任务的任务:
var taskListId = "add yours here";
var parentTask = Tasks.Tasks.insert({ title: 'Parent' }, taskListId);
var sub1 = Tasks.Tasks.insert(
{ title: 'Sub1' },
taskListId,
{ parent: parentTask.id }
);
var sub2 = Tasks.Tasks.insert(
{ title: 'Sub2' },
taskListId,
{ parent: parentTask.id, previous: sub1.id}
);
发布于 2014-05-05 06:36:36
好吧,我终于找到了答案.
我在上面的代码中犯了一个根本错误,我假设任务的父设置是父任务名,而实际上它应该是任务API分配给它的父任务ID。
然后,我意识到,任务的父任务应该在插入到TasksList之后设置,而不是作为新任务初始化的一部分,下面是现在的样子:
var taskListID = getTasklistId_(tasklistName);
var parentTask = getParentTask_(projectName,taskListID);
var taskDetails = {
title: title,
notes: notes,
parent: parentTask["id"],
position: parentTask["idx"]
};
var newTask = Tasks.newTask().setTitle(title);
newTask = Tasks.Tasks.insert(newTask, taskListID, taskDetails);
newTask.setParent(parentTask["id"]);
如您所见,我必须重置新任务的父任务。getParentTask_
函数返回父任务ID和最后一个子元素位置以插入新任务。
function getParentTask_(taskName, taskListId) {
var tasks = Tasks.Tasks.list(taskListId);
var taskID;
var position;
if (tasks.items) {
for (var i = 0; i < tasks.items.length; i++) {
var task = tasks.items[i];
if(taskName == task.title){
taskID = task.id;
Logger.log('Task with title "%s" and ID "%s" was found.', task.title, task.id);
}
//lets pick up the last child task's position in order to insert the new task below
if(taskID == task.parent) position = task.position;
}
}
if( taskID == null){
var newTask = Tasks.newTask().setTitle(taskName);
newTask = Tasks.Tasks.insert(newTask,taskListId);
taskID = newTask.id;
position = newTask.position;
}
var result = {
id: taskID,
idx: position
};
return result;
}
我希望上面的内容能够帮助人们更好地利用Google任务API进行创作。
PS:我用这个链接Wordpress WP项目管理器插件,它创建了新任务和评论的自动邮件程序。对于完整的实现,您可以看到这个职位。
发布于 2015-08-20 22:27:54
为了将您的任务(子任务)置于其他任务(父任务)之下,您应该这样做:(下面的代码是Java语言):
第1步:仔细阅读本文档:使用任务参数,特别阅读有关父级和以前版本的内容。
步骤2:现在编写代码:
//first add parent step
Task parentTask = service.tasks().insert(taskList.getId(), task). execute();
//now add child task say,session1
Task childTask=new Task();
childTask.setTitle("Session1");
Task response = service.tasks().insert(taskList.getId(), task). execute();
//now move this child task under parent task
service.tasks().move(taskList.getId(),response.getId()).setParent(parentTask.getId()).execute();
希望这能帮到别人!!
https://stackoverflow.com/questions/23431545
复制相似问题