Google apps script 异常:无效参数:label

Google apps script 异常:无效参数:label,google-apps-script,gmail-api,Google Apps Script,Gmail Api,我不熟悉谷歌脚本。我的脚本通过所需的gmail标签解析所有线程中的所有电子邮件。这部分工作得很好。现在我想给刚刚处理的线程添加新标签。这对我不起作用。我发现这个问题很简单,但它没有回答这个问题 所以我对它进行了更多的测试,发现即使是这段代码 // Add label MyLabel to the first thread in the inbox var label = GmailApp.getUserLabelByName("MyLabel"); var firstThre

我不熟悉谷歌脚本。我的脚本通过所需的gmail标签解析所有线程中的所有电子邮件。这部分工作得很好。现在我想给刚刚处理的线程添加新标签。这对我不起作用。我发现这个问题很简单,但它没有回答这个问题

所以我对它进行了更多的测试,发现即使是这段代码

// 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);

正在引发相同的错误
异常:无效参数:label

你知道如何给一条线添加标签吗


更新标签
MyLabel
不存在

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

修改脚本: 参考:
补充: 关于
如何检查标签是否已存在的附加问题?
,我想回答。在这种情况下,可以使用
getUserLabelByName
检查它。当
GmailApp.getUserLabelByName(名称)
name
存在时,将返回
gmailabel
对象。当
GmailApp.getUserLabelByName(名称)
name
不存在时,将返回
null
。这是可以使用的。当修改上述脚本时,它将变为以下内容

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

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

@Radek感谢您的回复。关于你的补充问题,我在回答中加了它。你能确认一下吗?
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);