Я написал бот-телеграмму, которая подключается к электронной таблице. Пользователь должен указать свое имя, и бот должен искать его с листа. Если имя указано на листе (то есть lookUpRange.indexOf(text) > -1
), бот отправляет мне по электронной почте эту строку "you're on the scores tab."
Письмо проходит, и это работает нормально.
Проблема в том, что второй фрагмент кода не работает: если lookUpRange.indexOf(text)
возвращает что-либо меньше 1, мне следует написать мне, что я не на вкладке с оценками. У меня только 5 имен на вкладке результатов, и все, что находится за их пределами, вернет -1, если вы запустите lookUpRange.indexOf(text)
. Но никакая электронная почта не проходит.
Я попытался настроить var text
со случайной строкой и зарегистрировал ее, чтобы убедиться, что она возвращает -1. Оно делает.
function doPost(e) {
//parses user's text
var contents = JSON.parse(e.postData.contents);
var id = contents.message.from.id;
var text = contents.message.text;
var first_name = contents.message.from.first_name;
//locates text in the spreadsheet
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Scores");
var lookUpRange = flatten(ss.getDataRange().getValues());
var index = lookUpRange.indexOf(text);
if (lookUpRange.indexOf(text) > -1){
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), "you're on the scores tab", text + " from " + first_name);
}
else {
GmailApp.sendEmail(Session.getEffectiveUser().getEmail(), "you're not on the scores tab", text + " from " + first_name);
}
}