170 похожих чатов

Ребят, кто подскажет по концепции webhook? У меня есть ТГ бот

на чистом node.js без библиотек, крутится на heroku. Бот получает запросы от пользователей, собирает данные и отправляет ответы. Он реализован через long polling, т.е. я в цикле регулярно проверяю наличие новых сообщений и обрабатываю их. Хочу переделать его на webhook, но не до конца понимаю как именно к этому подойти.

1. Где взять сам webhook? Я вижу, что в heroku есть возможность создать webhook, это то, что мне нужно? Какие еще удобные варианты есть?

2. Как именно обрабатывать входящие сообщения в webhook? Правильно ли я понимаю, что в отличии от long pooling я буду получать не массив сообщений, скопившихся между проверками getUpdates, а на каждое сообщение в webhook будет приходит блок информации. Вот в каком виде он приходит? Как его потреблять?

Из того что я понял, покопавшись, то вроде как надо разворачивать сервер, слушать на каком-то порту и по приходу в webhook сообщения будет срабатывать событие, которое мне и надо как-то ловить и обрабатывать. Есть ограничение - остаться на чистом node.js без библиотек и фрэймворков.

Короче какой-то затык, не могу пока продвинуться дальше, буду благодарен за подсказки

3 ответов

2 просмотра

В чатах по ботам советуют оставаться на long polling, потому что ты одним запросом можешь сразу кучу апдейтов забрать

Vladimir-R. Автор вопроса
Dmitry Croft
В чатах по ботам советуют оставаться на long polli...

Во-первых, мне не совсем нравится, что есть ограничение на скорость ответа бота, т.е. ответ может обработаться за 1 секунду, а может за 4 и это не зависит от реальной нагрузки, а просто скорость с которой можно опрашивать ТГ. Во-вторых, нагрузка большая не ожидается, а для меня это больше образовательный проект, чем коммерческий, хочу освоить и сравнить по факту что лучше.

1. Где взять сам webhook? Это http роут в твоём приложении, которое принимает запрос от телеграма. Тебе надо такой роут создать (обычно в бибилиотеках для бота это из коробки доступно), и так же надо отправить запрос в телеграм, чтобы сказать ему адрес вебхука 2. Как именно обрабатывать входящие сообщения в webhook? Можешь посмотреть как это реализовано в готовых библиотеках

Похожие вопросы

Обсуждают сегодня

Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
10
Hello, good time everyone I use Firebase to implement push notification inside the Flutter application and it works, but I don't receive the notification when the application ...
Iman
1
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
тут по sql есть спецы надеюсь есть таблица большая и там поле DATETIME TTIMESTAMP NOT NULL выборки будут по дням и нужен индекс... какой из индексов будет менее напряжным и ме...
Slym
9
какие есть варианты для чтения больших текстовых файлов кроме TBufferedFileStream?
zamtmn
12
Вместо import и library придется писать importlib?
The Bird of Hermes
19
бля хуево, я больше с некст месяца не тим лид) нашу команду поглощает более большая команда( У кого такой же кейс был)?)
Alibek Кulseitov 🇰🇿
9
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта