2

Я тренер баскетбола & Я создаю приборную панель для мониторинга социальных сетей моих игроков. Я использую IFTTT.com для загрузки твитов моих игроков в реальном времени в электронную таблицу. Я пытаюсь написать код, который, если один из моих игроков использует неправильное слово, он вызовет мне электронное письмо этой ячейки. Я чувствую, что я на правильном пути, но некоторые рекомендации по моему коду очень ценятся.Запуск электронной почты, когда ячейка имеет определенные значения

function onEdit(e) { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sheet = ss.getActiveSheet() 

var cell = ss.getActiveCell().activate(); 

Logger.log(cell.getA1Notation()); 

if (cell.getValue().match("ass")) { 
MailApp.sendEmail("[email protected]", "Notice of possible inappropriate tweet", cell;} 

}` 

Это код только один неподходящий слово, очевидно, так как я просто пытаюсь получить основы кодирования вниз, прежде чем добавить 100 неуместные слова. Беда в том, что если лист тянет три твита одновременно, это будет только проверка на последнем, так что вот где мои основные проблемы лежат прямо сейчас.

Любые рекомендации или помощь здесь очень ценятся!

+0

Вы работаете в конкретные проблемы с этим кодом? Я вижу несколько способов упростить/улучшить его, но эти изменения могут не решить проблему, с которой вы сталкиваетесь. Я предлагаю обновить вопрос с указанием того, что именно не работает для вас. –

ответ

0

Я согласен с комментариями Camerons выше, если вы можете описать, что конкретно не работает для вас, это даст нам представление о том, с чем вам нужна помощь.

В его нынешнем виде ваш код работает для меня, и он отправит мне электронное письмо, когда я отредактирую ячейку, чтобы содержать слово «задница».

Однако один улов состоит в том, что в настоящее время в теле письма у вас есть переменная «ячейка», которая вернет слово «диапазон».

Вот немного обновленная версия, которая обеспечивает более полезные обозначения в электронном письме:

function onEdit(e) { 
var ss = SpreadsheetApp.getActiveSpreadsheet();//Get the spreadsheet 
var sheet = ss.getActiveSheet()//Get the active sheet 
var cell = ss.getActiveCell().activate();//Get the active cell. 
var badCell = cell.getA1Notation();//Get the cells A1 notation. 
var badCellContent = cell.getValue();//Get the value of that cell. 

    if (badCellContent.match("ass")){ 
    MailApp.sendEmail("[email protected]", "Notice of possible inappropriate tweet", "The cell: " + badCell + " contains the word: " + badCellContent + "."); 
    } 
} 
+0

Извинения! Я должен был быть более ясным. Проблема, с которой я сталкиваюсь, заключается в том, что если три таблицы сразу попадают в электронную таблицу, с моим кодом, это будет только обновление самой последней ячейки, а не всех трех. Имеет ли это смысл? –

+0

Да ... Но я не уверен, что это беспокойство, о котором вам нужно беспокоиться. 1) Это очень маловероятно, если у вас нет большого количества игроков, или тянет твиты с интервалами, а не в реальном времени. 2) Я полагаю, что IFTTT будет выполнять действие записи для каждого твита, а не сохранять их и записывать их как диапазон, поэтому он должен запускать действие onEdit каждый раз. – HDCerberus

+0

Когда я запускаю это, я не получаю его, чтобы отправить мне электронное письмо, когда я положил «задницу» в ячейку. Имеет ли onEdit эту возможность? –

Смежные вопросы