Closed szabota closed 3 years ago
В актуальной версии можно не задавать chatID, бот принимает все сообщения и отправляет текст, ID сообщения, ID чата и юзернейм. См. доку и примеры
Дык в том-то и вопрос, что мне нужно и чат ид задавать, и принимать сообщения ещё и из неизвестных чатов.
заведи строку-вайтлист chatID, и в парсере отсеивай через .indexOf
К примеру, я хочу спрашивать пароль к управлению устройством из чат-бота. Если пароль совпал, я запоминаю это чат-ид и разрешаю управление. При этом если другой пользователь пришлёт сообщение, бот у него тоже должен спросить пароль и запомнить новый чат-ид
библиотека ничем в этом случае не ограничивает: не задавай внутренний ID список и будешь получать все сообщения и уже сравнивать со своим вайтлистом в любом удобном формате. Внутренний setChatID нужен для конкретного ограничения нужных чатов
Ладно, тоже вариант. Спасибо.
не, я могу конечно обернуть foo.indexOf(ID) > -1
в inChatIDs(ID)
, но это уже будет несовместимо с текущей версией, когда установленный ID отсеивает чаты
Согласен, внедрять хотелки так, чтобы не разрушить совместимость, это не благодарный труд. Библиотека получилась супер, спасибо огромное!
да незшт, делал под одну задачу, но коллективными хотелками получили отличный аналог тяжеленной telegramBot
"...Если задан ID чата/чатов (через setChatID()) - происходит автоматическое отсеивание сообщений НЕ из указанных чатов..." Оох! Это есть очень-очень сильное ограничение функционала бота. На мой взгляд, нужно всегда принимать все сообщения, а обрабатывать их или нет, уже решать в самом парсере. А для этого соответственно нужна отдельная функция, которая сверит данный ChatID со списком уже имеющихся в переменной ChatIDs. И тогда бот будет уже самостоятельно принимать решение, как ему поступать с пришедшим сообщением. Например, если и правда нужно отсеивать сообщения НЕ из указанных чатов, то это будет запрограммировано как-то примерно так: if ( !inChatIDs(ID) ) return;