我希望能够在Google脚本中以编程方式更改Gmail中单个电子邮件的标签。我无法使用标准GmailApp服务,因为它会将操作应用于整个邮件线程,而不是单个电子邮件。我已经找到了一些使用高级Gmail API进行此操作的示例(在特定消息中搜索/替换标签(而不是整个线程)与Google Apps Script)。但是我没有成功。我一直收到以下错误:
无论哪种方式,我都会得到相同的错误。
这里是我在Google Script Editor中尝试过的代码片段:提供的参数数量无效。仅期望3-4个 (第5行,文件“test”)
function changeLabel() {
var addLabel = '3to-smartsheetstest';
var removeLabel = '3to-smartsheets';
var msgId = '142b7c52e4cc4619';
var msgLabel = Gmail.Users.Messages.modify({
'userId': 'me',
'id': messageId,
'resource':{
'addLabelIds': [addlabel],
'removeLabelIds': [removelabel]
}
})
}
谷歌的资源文档指出,在JavaScript中应该像这样组织参数:
'userId': userId,
'id': messageId,
'addLabelIds': labelsToAdd,
'removeLabelIds': labelsToRemove
但是实际上需要按照这种方式进行结构化(在此处的错误报告中有说明:https://github.com/google/google-api-nodejs-client/issues/312):
'userId': 'some email address',
'id': 'some message id',
'resource':{
'addLabelIds': ['some label id'],
'removeLabelIds': []
}
无论哪种方式,我都会得到相同的错误。
function listLabels() { var labels = Gmail.Users.Labels.list('me'); Logger.log(labels); }
- Vanderling