Comments 12
telegraf.js.org наше все — там и плагинов туча, и разработчики приветливые и отзывчивые, и апи донельзя простое, и стейты есть, загляденье.
Все остальное, пока не появится что-то лучше, трешак и стыд-позор.
На текущий момент обертка выглядит неплохо для задачи "вопрос-ответ", но если смотреть на возможное расширение то все становится уже не так забавно. Когда нужно реализовать что-то более интересное (многоэтапные диалоги настроек, хитрая разметка, индивидуальные кнопки, множественная обработка одного и того-же события etc) то все эти дополнительные абстракции над апи телеги начинают скорее мешать. Наглядным примером может служить telebot где вроде как все под рукой, шмяк шмяк и в продакшн, sendFile(), onSticker() и так далее, почти полное скрытие апи под своими "легкими в понимании" обертками. Но чем дальше в лес тем больше становится понятно что "а повесить новый хендлер на ходу уже нельзя", "conncurrent unfriendly", "давайте смотреть json теги в бибилиотеке чтобы понять что вообще она тут делает" и так далее… В этом отношении telegram-bot-api реально выглядит достаточно чистой и разумной штукой для которой нет смысла городить что-то дополнительное.
пребывает в бодрствующем состоянии лишь 30 минут, а далее «засыпает»
Как-то мне понадобилось держать на Хероку целую пачку веб-ресурсов, всех объединяло одно: засыпание спустя Х минут. Таблеткой на тот момент стал, как ни странно, AWS, на котором (по другим причинам) крутилось еще пару машин. Минимальная вертушка, поднятая из предложенных free-tier, позволила решить вопрос пинга «хероковых» сайтов, так сказать, малой кровью (главное — за месячный лимит не выходить).
Тут стоит заметить, что успешная раскрутка сайта/бота/етц позволит, в конечном итоге, вообще отказаться от «пингалки» — все сделают сами юзеры.
Для Scala есть отличная библиотека, которую могу рекомендовать — bot4s/telegram — с её использованием ни разу не открывал API, всё что можно и нужно прекрасно видно по типам, спасибо выразительности Scala и json-кодекам circe. А транспорт апдейтов (вебхуки или поллинг) можно выбрать, не меняя логику абсолютно
Реактивная разработка Telegram бота