Как отмечают другие, согласно Документации API Google Tasks коллекция ссылок, к сожалению, доступна только для чтения.
В качестве возможного обходного пути, кажется, вы можете добавить ссылки в раздел заметок задачи, и тогда ссылки будут напрямую щелкать по панели задач в GMail.
Изображение: задание с кликабельной ссылкой
Ваша функция может быть изменена для размещения ссылки в разделе заметок следующим образом:
function addTask(taskListId, myTitle, myEmailLink) {
var task = Tasks.newTask(); // effectively same as "= {}".
task.title = myTitle
task.notes = 'link: ' + myEmailLink;
task = Tasks.Tasks.insert(task, taskListId);
}
Комбинируя это с функцией getPermalink () в объекте потоков GmailApp
, можно получить глубокую ссылку на искомое письмо.
Изображение: задание с постоянной ссылкой на электронную почту
Я работаю над набором скриптов, которые выполняют некоторые вещи, о которых вы говорите, в дополнение к нескольким другим вещам: https://github.com/tedsteinmann/gmailAutoUpdate
В моем решении у меня есть функция, которая захватывает потоки GMail с определенной меткой (в моем случае @Task), а затем создает задачу, задающую тему thread.getFirstMessageSubject()
и примечания thread.getPermalink()
Вся функция выглядит так:
function processPending_() {
var label_pending = GmailApp.getUserLabelByName(LABEL_PENDING);
var label_done = GmailApp.getUserLabelByName(LABEL_DONE);
// The threads currently assigned to the 'pending' label
var threads = label_pending.getThreads();
// Process each one in turn, assuming there's only a single
// message in each thread
for (var t in threads) {
var thread = threads[t];
// Grab the task data
var taskTitle = thread.getFirstMessageSubject();
var taskNote = 'Email: ' + thread.getPermalink();
// Insert the task
addTask_(taskTitle, taskNote, getTasklistId_(TASKLIST));
// Set to 'done' by exchanging labels
thread.removeLabel(label_pending);
thread.addLabel(label_done);
}
// Increment the processed tasks count
Logger.log('Processed %s tasks', threads.length);
}