Я создаю сценарий, который будет захватывать все непрочитанные электронные письма, перемещать тела этих электронных писем в электронную таблицу Google, передавать все эти данные в Slack через webhook, а затем очищать лист.
Первая часть скрипта, которая захватывает непрочитанные электронные письма и помещает их в соответствующие ячейки, работает нормально. Часть, через которую они проталкивают данные, не работает. Я установил цикл, чтобы убедиться, что он захватывает все данные, но он не работает. Я пытался сделать так, чтобы он не отображался как массив, но, похоже, это тоже не сработало.
var SEARCH_QUERY = "label:inbox is:unread to:me";
function getEmails_(q) {
var emails = [];
var threads = GmailApp.search(q);
for (var i in threads) {
var msgs = threads[i].getMessages();
for (var j in msgs) {
emails.push([msgs[j].getBody().replace(/<.*?>/g, '\n')
.replace(/^\s*\n/gm, '').replace(/^\s*/gm, '').replace(/\s*\n/gm, '\n')
]);
}
}
return emails;
}
function appendData_(sheet, array2d) {
sheet.getRange(sheet.getLastRow() + 1, 1, array2d.length, array2d[0].length).setValues(array2d);
}
function saveEmails() {
var array2d = getEmails_(SEARCH_QUERY);
if (array2d) {
appendData_(SpreadsheetApp.getActiveSheet(), array2d);
}
}
function postToSlack() {
var url = "SLACK WEBHOOK URL HERE";
var sheet = SpreadsheetApp.getActiveSheet();
// This represents ALL the rows
var range = sheet.getDataRange();
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
var row = [];
for (var j = 0; j < values[i].length; j++) {
if (values[i][j]) {
row.push(values[i][j]);
}
}
Logger.log(row);
var str = values;
var payload = {
"text": str
}
var post = {
"method": "post",
"payload": JSON.stringify(payload)
};
return UrlFetchApp.fetch(url, post);
}
}
Я ожидаю, что данные в ячейках будут выталкиваться прямо в Slack, но ничего не происходит. Когда я запускаю журналы для строк, которые он находит, он также не выводит данные.