脚本仅返回名为 "GmailLabel" 的标签
Script is returning my labels only as named "GmailLabel"
我已经开始为我的财务创建一个脚本,该脚本依赖于我的标签名称。当我调用我的标签列表时,它 returns 是正确的标签数量,但它们没有被命名为 "Discover" 或 "American Express",它们都被命名为 "GmailLabel".. 全部其中 10 个。这没有用。
我试过添加和删除标签,这表明 returns 标签的数量正确,只是没有命名它们的实际名称。我试过调用 .getUserLabelByName('GmailLabel') 其中 returns 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])
}
}
我希望返回的标签与我的实际标签名称("Discover"、"American Express" 等)相对应,但我只收到 GmailLabel。
正在打印 class 名称。您需要调用该方法来获取实际名称。
替换:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label)
与:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label.getName())
我已经开始为我的财务创建一个脚本,该脚本依赖于我的标签名称。当我调用我的标签列表时,它 returns 是正确的标签数量,但它们没有被命名为 "Discover" 或 "American Express",它们都被命名为 "GmailLabel".. 全部其中 10 个。这没有用。
我试过添加和删除标签,这表明 returns 标签的数量正确,只是没有命名它们的实际名称。我试过调用 .getUserLabelByName('GmailLabel') 其中 returns 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])
}
}
我希望返回的标签与我的实际标签名称("Discover"、"American Express" 等)相对应,但我只收到 GmailLabel。
正在打印 class 名称。您需要调用该方法来获取实际名称。
替换:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label)
与:
var label = GmailApp.getUserLabelByName('GmailLabel')
Logger.log("Found "+label.getName())