#telegram #telegram-bot #telethon
#telegram #telegram-бот #телемарафон
Вопрос:
Я использую telethon, и у меня возник вопрос: как telegram знает, куда отправить запрос?
Я создал бота в telegram. Когда пользователь отправляет сообщение боту, как telegram узнает, куда перенаправить это сообщение. Я запускаю свою программу на своем локальном сервере, а также на сервере. Но в коде мы ничего не упоминаем о сервере. Но программа отлично работает и над этим.
Нужно понять поток.
Комментарии:
1. Вы отправляете сообщение через Telegram, почему они не знают, кто его отправил?
Ответ №1:
Telethon использует так называемый MTProto для связи с серверами Telegram. Он подключается точно так же, как и реальный клиент (например, TDesktop или Webogram). После установления соединения вместо использования номера телефона аутентификация выполняется с помощью токена бота. Затем все остальное — стандартная процедура: запрашивайте у Telegram любое новое сообщение, и Telegram отвечает всеми сообщениями, которые люди отправили боту или группам, в которых состоит ваш бот (если у вас это включено через BotFather). Чтобы сократить трафик, при наличии открытого соединения Telegram может отправлять обновления автоматически.
Это общий процесс. Для более подробного объяснения того, как работает MTProto, вся техническая информация доступна на их веб-сайте. Часть об обновлениях находится здесь: https://core.telegram.org/api/updates
Ответ №2:
У каждого обработчика есть аргумент, я назвал его здесь событием, например:
@client.on(events.NewMessage)
asynce def handler(event):
В этом событии содержится вся информация, текст сообщения, идентификатор сообщения и т. Д.