Почему я получаю неверный аргумент при использовании функции removeLabel в Google Script - PullRequest
1 голос
/ 01 февраля 2020

Я хочу удалить созданную пользователем метку под названием «Add-to-Spendee-2» из коллекции писем. Я в значительной степени следовал Документации Google removeLabel () до этой точки, но я продолжаю получать "Недопустимый аргумент: метка" ошибка.

Вот код:

function removeLabel()

{
  var myLabel = GmailApp.getUserLabelByName('test-add-to-spendee-2');
  var threads = GmailApp.search("label:test-add-to-spendee-2 AND from:swiggy AND subject:(Your receipt for Swiggy order)");

  for (var x in threads) 
  {
  var thread = threads[x]
  thread.removeLabel(myLabel)
  }
  
}

Примечание. Если я заменим removeLabel(myLabel) на любую другую функцию, например markUnread(), код работает отлично.

1 Ответ

1 голос
/ 01 февраля 2020

Я думаю, что ваш код будет работать, но я думаю, все, что вам нужно сделать, это:

var lbl=GmailApp.getUserLabelByName('Q0/Subject/Name');
var threads=GmailApp.search('label:Q0/Subject/Name');//exactly as you created it
lbl.removeFromThreads(threads);

Попробуйте использовать отладчик и убедитесь, что потоки получают массив объектов GmailThread.

enter image description here

Вот как выглядит ярлык в окне поиска Gmail:

enter image description here

Они изменили косую черту на тире и использовали строчные буквы, но на самом деле это не то, на что похож ярлык.

Как я уже говорил выше в своем комментарии:

Я только что сделал это недавно, и обнаружил, что описание ярлыка в окне поиска gmail не соответствовало тому, как я на самом деле создал ярлык. На нем отображалась метка, подобная этой, q0-subject-name, и я использовал ее как Q0/Subject/Name, когда использовал q0-subject-name. Я не мог найти метку, а когда я использовал Q0/Subject/Name, я нашел ее. Я надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...