Gmail.Users.Messages.remove(me, id) - ошибка не найдена
Кто-нибудь еще обнаружил, что вызов Advanced Gmail Service
`Gmail.Users.Messages.remove(me, id)`
сейчас дает ошибки? У кого-нибудь есть починка?
У меня был надежный скрипт, который удалял спам и мусор каждые несколько часов. Примерно с 21 февраля 17 он выдает ошибку "Не найдено", даже если передан действительный идентификатор потока.
Это сценарий. Я добавил несколько сообщений
function deleteForever() {
var threads = GmailApp.getSpamThreads(0, 100);
var me = Session.getActiveUser().getEmail();
for (var i = threads.length -1; i >=0; i--) {
var thisid=threads[i].getId();
Logger.log("Removing thread " +i + ' of ' + threads.length + " from Spam with ID = " + thisid);
try {
var thisthread=GmailApp.getThreadById(thisid);
Logger.log("Found the thread.");
Gmail.Users.Messages.remove(me, thisid);
}catch(err) {
Logger.log("Error " + err.message);
};
}
Logger.log("Finished removing " + threads.length + " threads from Spam.");
var threads = GmailApp.getTrashThreads(0, 100);
for (var i = threads.length -1; i >=0; i--) {
Logger.log("Removing thread " +i + ' of ' + threads.length + " from Trash");
try {
Gmail.Users.Messages.remove(me, threads[i].getId());
} catch(err) {
Logger.log("Error " + err.message);
};
}
Logger.log("Finished removing " + threads.length + " threads from Trash.");
}
Теперь это просто ошибка "Не найдено".
[17-02-25 11:45:49:790 GMT] Removing thread 17 of 18 from Spam with ID = 15a6fe6c1a86a020
[17-02-25 11:45:49:829 GMT] Found the thread.
[17-02-25 11:45:49:959 GMT] Error Not Found
[17-02-25 11:45:49:959 GMT] Removing thread 16 of 18 from Spam with ID = 15a6fe6c168f4a03
[17-02-25 11:45:50:000 GMT] Found the thread.
[17-02-25 11:45:50:129 GMT] Error Not Found
[17-02-25 11:45:50:130 GMT] Removing thread 15 of 18 from Spam with ID = 15a6fed29f6650b3
[17-02-25 11:45:50:165 GMT] Found the thread.
[17-02-25 11:45:50:294 GMT] Error Not Found
.....
`
Обратите внимание, что thisid определенно имеет действительный идентификатор перед попыткой операции удаления.
1 ответ
Решение
Вы удаляете сообщение, пока функция поиска выбирает тему.
использование
Gmail.Users.Threads.remove("me", threadId)
вместо
Gmail.Users.Messages.remove("me", threadId);