【问题标题】:Exception: Invalid argument: label例外:无效参数:标签
【发布时间】:2020-10-17 23:04:15
【问题描述】:

我是谷歌脚本的新手。我的脚本通过所需的 gmail 标签解析所有线程中的所有电子邮件。这部分工作得很好。现在我想为刚刚处理的线程添加新标签。它对我不起作用。我发现了这个 SO question "Invalid Argument" error with addLabel(label) method 但它没有回答这个问题。

所以我测试了更多,发现即使是这段代码

// Add label MyLabel to the first thread in the inbox
var label = GmailApp.getUserLabelByName("MyLabel");
var firstThread = GmailApp.getInboxThreads(0,1)[0];
firstThread.addLabel(label);

来自https://developers.google.com/apps-script/reference/gmail/gmail-thread#addlabellabel

抛出同样的错误Exception: Invalid argument: label

知道如何为线程添加标签吗?

更新标签MyLabel不存在

【问题讨论】:

    标签: google-apps-script gmail-api


    【解决方案1】:

    在您的脚本中,使用现有的标签名称。因此,当使用不存在的新标签名称时,会发生此类错误。为了使用新标签名称,需要创建新标签。所以当你的脚本被修改后,就变成了如下。

    修改脚本:

    var newLabelName = "sample1";  // Please set the new label name.
    var newLabel = GmailApp.createLabel(newLabelName);
    var firstThread = GmailApp.getInboxThreads(0,1)[0];
    firstThread.addLabel(newLabel);
    

    参考:

    补充:

    关于你how can I check if a label already exists?的附加问题,我想回答一下。在这种情况下,您可以使用getUserLabelByName 进行检查。当GmailApp.getUserLabelByName(name)name 存在时,返回GmailLabel 对象。当GmailApp.getUserLabelByName(name)name 不存在时,返回null。这个可以用。修改上述脚本后,变为如下。

    修改脚本:

    var newLabelName = "sample1";
    var label = GmailApp.getUserLabelByName(newLabelName);
    if (!label) {
      label = GmailApp.createLabel(newLabelName);
    }
    var firstThread = GmailApp.getInboxThreads(0,1)[0];
    firstThread.addLabel(label);
    

    或者,作为简单脚本,您也可以使用以下脚本。

    var newLabelName = "sample";
    var label = GmailApp.getUserLabelByName(newLabelName) || GmailApp.createLabel(newLabelName);
    var firstThread = GmailApp.getInboxThreads(0,1)[0];
    firstThread.addLabel(label);
    
    • 在这个修改后的脚本中,当newLabelName 不存在时,标签被创建为新标签。当newLabelName 存在时,使用现有标签。

    【讨论】:

    • @Radek 感谢您的回复。关于您的其他问题,我在回答中添加了它。你能确认一下吗?
    猜你喜欢
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2023-03-25
    • 2011-02-08
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多