异常:无效参数:标签
Exception: Invalid argument: label
我是 google 脚本的新手。我的脚本通过所需的 gmail 标签解析所有线程中的所有电子邮件。这部分效果很好。现在我想为刚刚处理的线程添加新标签。它对我不起作用。我发现了这个 SO 问题 但它没有回答问题。
于是我又测试了一遍,发现连这段代码都没有
// 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
不存在
在您的脚本中,使用了现有的标签名称。因此,当使用不存在的新标签名称时,会发生此类错误。为了使用新标签名称,需要创建新标签。所以当你的脚本修改后,就变成了下面这样
修改后的脚本:
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
存在时,使用现有标签。
我是 google 脚本的新手。我的脚本通过所需的 gmail 标签解析所有线程中的所有电子邮件。这部分效果很好。现在我想为刚刚处理的线程添加新标签。它对我不起作用。我发现了这个 SO 问题
于是我又测试了一遍,发现连这段代码都没有
// 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
不存在
在您的脚本中,使用了现有的标签名称。因此,当使用不存在的新标签名称时,会发生此类错误。为了使用新标签名称,需要创建新标签。所以当你的脚本修改后,就变成了下面这样
修改后的脚本:
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
存在时,使用现有标签。