我已经开始为财务创建脚本,该脚本取决于标签名称。当我调用标签列表时,它会返回正确数量的标签,但是它们的名称不是“ Discover”或“ American Express”,而是全部命名为“ GmailLabel”。它们全部有10个。没用
我尝试添加和删除标签,这表明它返回正确数量的标签,只是未命名其实际名称。我尝试调用.getUserLabelByName('GmailLabel'),该方法返回null。
function getFinances() {
Logger.log("Running getFinances()")
// this prints: GmailLabel 10
Logger.log(GmailApp.getUserLabels().toString()
+" "
+ GmailApp.getUserLabels().length)
// this prints: Found null
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label)
// this fails to print
var threads = label.getThreads()
Logger.log("Found "+threads.length+" threads")
// this is where my script would append rows with email data
for (var i = 0; i < threads.length; i++) {
var messages = threads[i].getMessages()
var subject = threads[0].getFirstMessageSubject()
var body = messages[0].getPlainBody()
Logger.log("adding row for " + subject)
if (body) {
var x = body.match(/\$\d+(?:\.\d+)?/)
var money = (x && x[1]) ? x[1].trim() : 'N/A'
}
var sheet = SpreadsheetApp.getActiveSpreadsheet()
sheet.appendRow([money, subject])
}
}
我希望返回的标签与我的实际标签名称(“发现”,“美国运通”等)相对应,但我只会得到GmailLabel。
答案 0 :(得分:1)
正在打印类名称。您需要调用该方法以获取实际名称。
替换:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label)
具有:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label.getName())