Я получаю уведомления по электронной почте о назначениях врачей и т. Д., Но мне нужно только быть в курсе последних событий.Я пытаюсь создать скрипт Google для архивации старых напоминаний, когда получаю новое напоминание от того же провайдера.
Основной способ работы скрипта - это фильтр gmail, который добавляет тег к любым новым напоминаниям, которыевходите, который затем использует скрипт, чтобы увидеть, существует ли существующее напоминание от этого провайдера (посредством проверки другого тега), затем действует соответствующим образом (изменяя теги и архивируя сообщения)
Однако я продолжаю получать сообщение об ошибке«Не удается найти функцию removeLabel в потоке Gmail объекта» в строке 34, хотя все выглядит правильно
//get the threads with the new message label (new threads that need to be checked by the function)
var newThreadsLabel = GmailApp.getUserLabelByName("@Automate/Keep Only One/New Message")
var newThreads = newThreadsLabel.getThreads(0, 400);
//get the current threads (messages that were previously defined as the "current reminder")
var currentThreadsLabel = GmailApp.getUserLabelByName("@Automate/Keep Only One/Current Reminder")
var currentThreads = currentThreadsLabel.getThreads(0, 400);
//loop through the new threads
for (var i = 0; i < newThreads.length; i++){
var newThread = newThreads[i];
//get the subject for the newThread
var subject = newThread.getFirstMessageSubject();
//loop through the "current reminder" threads to see if they are now old (they have the same subject as the "new message"), archive them if they are, then label the "new thread" as the "current thread"
for (var i = 0; i < currentThreads.length; i++){
var currentThread = currentThreads[i];
//check if any of the "current threads" have the same subject as the "new thread", and is not the "new thread" itself
if(currentThread.getFirstMessageSubject() == subject){
//Now, we need to make sure that we don't archive the current thead itself (in some cases gmail may have bundled them into the same thread)
//Get the labels on the "current thread"
var labels = currentThreads[i].getLabels();
//check to see if the labels on the "current thread" include the newThreadsLabel
if(labels.indexOf(newThreadsLabel) !== -1){
//if the "new thread" and "current thread" are the same dont do anything because we don't need to archive it
}else{
//if they are not the same, archive the currentThread and remove the currentThreadsLabel
currentThread.removelabel(currentThreadsLabel);
currentThread.moveToArchive();
}
}
}
//remove the new thread label, then add the current thread label (new thread becomes the "current reminder" thread)
newThread.removeLabel(newThreadsLabel);
newThread.addLabel(currentThreadsLabel);
}
}
Я дважды и трижды проверил документацию, и это, кажется, правильный способ использования removeLabel.Почему я получаю эту ошибку?