Как в телеграмме создать бота: Как сделать бота в «Телеграме» без навыков программирования

Как начать общаться с клиентами через Телеграм бот

Создайте Телеграм бота

  1. Для этого воспользуйтесь @BotFather*. Нажмите «Начать», а затем выберите в меню команду /newbot.
  2. *@BotFather — это главный сервис Телеграма, через который проходит регистрация всех пользовательских ботов.

  3. Задайте название бота.
  4. Затем придумайте юзернейм (он будет отображаться в ссылках). Он должен быть написан латиницей, может содержать цифры и нижнее подчеркивание и обязательно должен иметь окончание bot. Юзернейм должен быть уникальным. Если юзернейм уже занят, @BotFather сообщит об этом в ответе.
  5. Поздравляем, вы создали Телеграм бота! Токен Телеграм бота понадобится вам для настройки интеграции бота с Messaggio.

Привяжите бота к аккаунту Messaggio, создав отправителя Телеграм

  1. Зайдите в личный кабинет Messaggio, перейдите в раздел «Отправители», нажмите «Создать».
  2. В поле «Канал» из выпадающего списка выберите Telegram. Скопируйте токен Телеграм бота и добавьте его в соответствующее поля на стороне Messaggio.

Создайте шаблон сообщения

  1. Среди действий с отправителем выберите «Создать шаблон с отправителем».
  2. Выберите подходящий макет шаблона сообщения. Добавьте кнопки и ссылки. Нажмите «Создать».
  3. Отправите шаблон сообщения на модерацию. В течение 2 рабочих дней служба поддержки Messaggio проверит шаблон на соответствия правилам Телеграм. Возле одобренного шаблона появится статус ACTIVE.

Возможности рассылки от Телеграм бота из Messaggio

Телеграм бот позволяет общаться с клиентами 3 способами:

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

Рассмотрим порядок настройки бота для каждого способа коммуникации.

Рассылка в Телеграм канал / Телеграм группу

Добавьте бота в Телеграм канал / Телеграм группу

  1. Откройте Телеграм канал / Телеграм группу, в который планируете отправлять сообщения.
  2. Кликните на название канала, перейдите в раздел «Подписчики».
  3. Нажмите кнопку «Добавление подписчиков». Найдите ранее созданного бота в поиске и кликните «Добавить».

Теперь бот может отправлять сообщения в канал / группу от своего имени.

Запустите рассылку по подписчикам канала / группы

  1. В личном кабинете Messaggio перейдите в раздел «Рассылки» и нажмите «Создать» — «Стандартная рассылка».
  2. Задайте рассылке название, выберите созданный ранее шаблон сообщения Телеграм.
  3. Назначьте группу контактов для рассылки. В списке групп контактов вы увидите автоматически созданную группу в формате Telegram channel_UsernameBot / Telegram group_UsernameBot. Выберите группу контактов и нажмите «Добавить выбранные».
  4. В списке рассылок выберите созданную Телеграм-рассылку и нажмите «Отправить рассылку». Настройте время доставки сообщений и нажмите «Запустить рассылку».

Рассылка будет доставлена в Телеграм канал / Телеграм группу от имени бота в указанное вами время.

Рассылка в личный Телеграм-чат с пользователем

Чтобы Телеграм бот мог отправлять сообщения в личный чат с пользователем, пользователь должен быть подписан на бота. Пользователь считается подписавшимся на Телеграм бота, если он инициировал общение с ботом, запустив его и сообщив ему свой номер телефона.

  1. Чтобы отправить личное сообщение от имени Телеграм бота, в личном кабинете Messaggio перейдите в раздел «Рассылки» и нажмите «Создать» — «Стандартная рассылка».
  2. Задайте рассылке название, выберите созданный ранее шаблон сообщения Телеграм.
  3. Назначьте группу контактов для рассылки. В списке групп контактов вы увидите автоматически созданную группу в формате Telegram chats_UsernameBot (хранит в себе контактные данные всех пользователей, кто написал боту и нажал кнопку поделиться контактами). Выберите группу контактов и нажмите «Добавить выбранные».
  4. В списке рассылок выберите созданную Телеграм-рассылку и нажмите «Отправить рассылку». Настройте время доставки сообщения и нажмите «Запустить рассылку».

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

  • Была ли эта статья полезной?
  • ДаНет

Далее: Как создать шаблон сообщения

Создание бота в Telegram. Основы

Веб-разработка

4034

Telegram, на практике, оказывается не только надежным мессенджером для личных переписок, но и удобной платформой для автоматизации множества действий, вроде запросов информации, при помощи ботов. При этом, сам процесс создания такого автоматизированного помощника доступен даже без особенно больших познаний в программировании — для относительно простых вариантов с умеренной функциональностью достаточно будет базового владения выбранного для реализации идеи языка.

С чего начинать создание бота в Телеграмме?

Прежде чем приступать к работе над кодом бота Telegram, имеет смысл его зарегистрировать. Что хорошо, сам этот процесс очень простой и полностью автоматизирован:

  • Начинаете чат с аккаунтом @BotFather;
  • Вводите базовую команду на создание нового бота /newbot;
  • Отправляете предпочитаемое вами имя для нового бота и его юзернейм, который обязательно должен заканчиваться на “bot”;
  • Получаете уникальный токен;
  • При желании, сразу можно ввести описание для бота, список его команд и подходящее изображение или отложить эти действия на потом.

Обратите внимание, что когда вы выполняете создание чат бота в Telegram, полученный токен должен оставаться известным только вам, иначе не исключен злонамеренный перехват управления.

Выбор языка программирования и хостинга

Функциональность Telegram-бота можно реализовать различными путями, каждый из которых имеет свои преимущества. Так, создание чат бота в Телеграмме достаточно просто выполняется следующими способами:

  • С использованием Microsoft Visual Studio. В качестве языка программирования в этом случае рационально будет выбрать C# или Node. js. При этом, вам не понадобится с нуля писать большие массивы кода — гораздо проще воспользоваться готовым набором шаблонов, таких как Bot Application, Bot Framework Emulator, Bot Dialog и Bot Controller. Всю необходимую информацию об их установке и использовании содержит документация Microsoft Bot Framework, вам же останется только настроить эти шаблоны под свои требования. Естественно, такой вариант подходит в полной мере только для пользователей Windows.
  • Среди других вариантов выполнить в Telegram создание бота, PHP также дает немало возможностей. Прежде всего, стоит иметь в виду большую популярность этого языка программирования — если что-то пойдет не так, всегда найдется с кем проконсультироваться. Также подкупает и наличие уже готовых библиотек для работы с Телеграмм, таких, например, как Telegram Bot SDK, позволяющая свести ваши усилия к минимуму.
  • Наконец, среди языков программирования, позволяющих быстро и беспроблемно выполнить создание бота в Телеграмме, Python является одним из наиболее популярных решений. В основном это связано с широкими возможностями, доступными как при использовании стандартных библиотек, так и с применением уже готовых вариантов, таких как PyTelagramBotAPI, рассчитанных на работу непосредственно с Telegram.

Конечно, когда вам нужен полноценно работающий Telegram бот, создание его окажется только половиной необходимой работы. Вторым обязательным этапом станет обеспечение его бесперебойной работы, для чего необходимо подобрать надежный и доступный по цене сервер. К счастью, существует достаточно немало вполне подходящих бесплатных решений, таких как Azure или Heroku, однако, если вас интересует неограниченная функциональность Telegram стоит отдать предпочтение платным облачным вариантам.

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(3 голоса, в среднем: 5 из 5)

4034

Читайте также

Интеграция WordPress с GitHub

Давайте обсудим

ваш проект

Создание бота Telegram с использованием Python для генерации случайных цитат | Программа инженерного образования (EngEd)

Чат-боты — это программные приложения, используемые для ведения онлайн-чатов и автоматизации обслуживания клиентов с помощью текста или преобразования текста в речь. Чат-боты можно использовать для таких вещей, как напоминания, бронирование встреч, а также на платформах социальных сетей.

В этом руководстве мы создадим простого бота Telegram, который через определенные промежутки времени отправляет котировки автоматического программирования в группу Telegram с использованием Python.

Telegram — это бесплатное кроссплатформенное облачное программное обеспечение для обмена мгновенными сообщениями (IM) с открытым исходным кодом. Он обеспечивает видеосвязь и обмен файлами среди других функций.

Предварительные требования

Чтобы следовать этому руководству, на вашем компьютере должен быть установлен Python 3, а небольшое понимание Python поможет читателю лучше понять его.

Содержание

  1. Настройка профиля бота
  2. Кодирование бота
  3. Вывод

Настройка профиля бота

Чтобы настроить нового бота, нам нужно сначала зарегистрировать нашего бота, прежде чем использовать его. Таким образом мы получаем токен для доступа к Telegram API. Если у вас нет учетной записи Telegram, создайте ее здесь.

Нажмите на значок поиска в Telegram, затем введите @botfather в строку поиска.

BotFather — официальный бот, созданный Telegram для облегчения создания ботов.

Создание бота отца в Telegram

Теперь нажмите кнопку «Пуск», чтобы начать разговор. Вы должны получить следующий интерфейс:

Начало разговора с отцом бота

Введите /start , чтобы начать.

Далее мы создаем бота, выполнив команду /newbot .

Создать нового бота

Затем мы вводим желаемое имя и имя пользователя для бота.

Выбор имени бота

Теперь скопируем наш токен доступа и сохраним его где-нибудь. Не забудьте должным образом защитить токен доступа, так как он служит паролем вашего бота.

Кодирование бота

Начнем с создания нового каталога и перехода в него.

Далее создаем виртуальную среду.

Виртуальная среда позволяет создавать на вашем компьютере различные пространства с различным набором библиотек и версий.

Создав виртуальную среду, вы сможете разделить установку необходимых библиотек для проекта, не устанавливая их глобально.

Теперь создайте виртуальную среду env , выполнив следующую команду:

 python -m venv env
 

При создании активируйте виртуальную среду с помощью следующей команды:

 source env/bin/activate
 

Далее нам нужно создать группу Telegram и добавить в нее нашего бота.

Добавить участников в Bot

Далее нам нужно получить Chat ID, мы можем сделать это, отправив эту команду в виде сообщения в группу Telegram:

 /my_id BOT_NAME
 

После этого нам нужно открыть URL-адрес ниже в нашем браузере, чтобы получить идентификатор нашего чата:

 https://api. telegram.org/botBOT_TOKEN/getUpdates
BOT_TOKEN = токен, который мы скопировали ранее
 

Это возвращает ответ JSON, что-то вроде словаря Python, который содержит наш идентификатор чата.

JSON, содержащий идентификатор чата

Теперь мы создаем новый файл Python с именем bot.py и добавляем в него следующие строки кода:

 запросы на импорт
время импорта
# список цитат
кавычки = [
    «Во-первых, решить проблему. Затем напишите код. – Джон Джонсон»,
    «Опыт — это имя, которое каждый дает своим ошибкам. - Оскар Уайлд',
    «Код подобен юмору. Когда приходится объяснять, это плохо. – Кори Хаус»,
    «Прежде чем программное обеспечение можно будет использовать повторно, оно должно быть пригодным для использования. – Ральф Джонсон,
    «Оптимизм — это профессиональный риск программирования: обратная связь — это лечение. - Кент Бек
]
# цикл по кавычкам
для цитаты в кавычках:
    url = 'https://api.telegram.org/bot1848805395:AAHaacRzz3vDJ8vrQqVZ4vMPTqY1OBOQ12Q/sendMessage?chat_id=CHAT_ID&text="{}"'. format(quote)
    запросы.получить(url)
    # отправляет новые котировки каждые 20 секунд
    время сна(20)
 

Перед тестированием бота нам нужно установить модуль запросов, используя следующий код:

 запросы на установку pip
 

Теперь давайте проверим нашего бота, запустив файл Python в терминале:

 python bot.py
 

Печать котировок каждые 20 секунд

Ура, работает!

Давайте сделаем нашего бота более интересным, подключившись к API, который будет снабжать нас случайными цитатами из программ.

Мы будем использовать этот API и конечную точку /random для получения случайных котировок.

Далее нам нужно добавить следующие строки кода вверху нашего файла

 из telegram.ext import Updater, CommandHandler, MessageHandler, Filters
импортировать json
 

Теперь давайте создадим функцию, которая отправляет случайные кавычки, добавив следующие строки кода:

 telegram_bot_token = "ТОКЕН"
updater = Updater (токен = telegram_bot_token, use_context = True)
диспетчер = updater. dispatcher
def random(обновление, контекст):
    # получаем данные из API
    ответ = запросы.получить('http://quotes.stormconsultancy.co.uk/random.json')
    данные = ответ.json()
    # Отправить сообщение
    context.bot.send_message(chat_id=update.efficient_chat.id, text=data['quote'])
# связываем команду /random с функцией random()
quotes_handler = CommandHandler('случайный', случайный)
диспетчер .add_handler (quotes_handler)
 

Теперь давайте запустим файл и введем /random в нашу группу Telegram. Наш бот должен ответить случайной цитатой.

Бот получает случайную цитату с помощью API

Заключение

В заключение мы узнали о создании ботов Telegram для групп.

С помощью бота Telegram вы можете добиться еще многого, например, подключить своего бота к другим API и разместить их на такой платформе, как Heroku, чтобы ваш бот был доступен 24/7.

Вы также можете проверить документацию по ботам Telegram для получения дополнительной информации о создании ботов.

Вот некоторые API, которые вы можете интегрировать с вашим ботом Telegram:

  1. Случайные изображения собак
  2. Открыть карту погоды
  3. Конвертер валют
  4. Футбол
  5. Yahoo Финансы

Приятного программирования!


Экспертная оценка Вклад: Шришилеш П.С.

Телеграм-бот | Replit Docs

Если вы когда-либо пользовались интернет-форумом, вы, возможно, видели, что иногда существуют способы публиковать сообщения, отличные от того, чтобы делать это прямо на форуме, например, по электронной почте.

В этом руководстве мы создадим общедоступную доску объявлений, и вместо того, чтобы пользователи размещали сообщения непосредственно на сайте, они будут отправлять их боту Telegram.

Сообщения будут содержать просто текст сообщения, но мы предоставим дополнительную информацию о том, как использовать другие данные, такие как имена пользователей. Мы оставим это в качестве упражнения для расширения функциональности.

Чтобы следовать этому руководству:

  • Вы должны быть знакомы с основами программирования на Python.
  • Вам потребуется скачать Telegram и иметь учетную запись.
  • Вам также понадобится учетная запись Replit, поэтому создайте ее сейчас, если вы еще этого не сделали.

Было бы полезно, если бы вы были знакомы с базой данных Replit, но это не обязательно.

Нам нужно зарегистрировать нашего бота в Telegram, чтобы сгенерировать учетные данные, которые мы будем использовать для подключения к Telegram API. Каждый бот требует, чтобы за него отвечала учетная запись пользователя. Это можно сделать с помощью официального управляющего бота Telegram под названием «BotFather».

Для этого войдите в свой клиент Telegram и найдите «@bot» в поиске чата. Обязательно выберите подтвержденную учетную запись (тот, рядом с которой стоит галочка), иначе мы можем в конечном итоге поговорить с кем-то, выдающим себя за официального BotFather.

Чтобы активировать BotFather, нажмите «Старт».

Мы можем отправить BotFather команду «/newbot», чтобы начать рабочий процесс создания бота.

Он запросит у нас:

  • Имя бота, которое будет отображаться в верхней части чата нового бота, например, «Повторить краткое руководство».

  • Имя пользователя, которое будет использоваться для уникальной ссылки на бота, например, «@replit_tutorialbot».

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

Как только мы ответим на все вопросы, BotFather отправит нам наш токен аутентификации, который будет выглядеть примерно так: 110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw .

Обратите внимание, что вся строка (двоеточие и обе строки по обе стороны от него) является токеном.

Теперь мы можем приступить к написанию той части программы, которая обрабатывает запросы от Telegram. Создайте новую реплику и выберите Python из раскрывающегося списка языков.

Нашему боту нужно взаимодействовать с Telegram. Нам потребуется доступ к Telegram REST API. Есть много способов сделать это, но для этого руководства мы будем использовать удобную библиотеку, которая охватывает API.

Прежде чем мы сможем двигаться дальше, нам нужно сделать наш токен доступным для нашего бота, чтобы использовать его позже. Создайте переменную среды TOKEN , щелкнув значок замка на боковой панели, как показано ниже, и вставьте токен бота, который вы отметили ранее, например, 110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw :

Это гарантирует, что наш токен доступен как переменная среды и что к ней не могут получить доступ люди, публично просматривающие repl.

Создание базового бота

Теперь, когда мы все настроили, мы можем приступить к программированию! В нашем файле main.py мы начнем со следующего: пакет upm (python-telegram-bot)

def help_command (обновление: обновление, контекст: CallbackContext) -> Нет:
htext = »’
Добро пожаловать
Отправьте сообщение, чтобы сохранить его.
Отправьте команду /fetch для получения самого последнего сообщения.
dispatcher.add_handler(CommandHandler(«start», help_command))
dispatcher.add_handler(CommandHandler(«help», help_command))

updater.start_polling()

updater.idle()

if __name__ == ‘__main__ ‘:
главная()

Вверху мы импортируем os , чтобы мы могли получить наш токен из переменной окружения.

Затем мы импортируем классы из библиотеки Telegram.

Комментарии, начинающиеся с #upm , необязательны. Они используются Replit для загрузки правильного пакета. Он вообще не нужен, а здесь нужен, потому что подобных библиотек Telegram очень много.

Функция help_command запускается всякий раз, когда пользователь отправляет нам команду «/start» или «/help». «/start» также автоматически запускается, когда новый пользователь присоединяется к вашему боту (как мы делали ранее с BotFather). Бот знает, как использовать эту функцию, потому что мы сообщим об этом позже в основное тело функции .

Основная функция инициализирует для нас средство обновления, используя наш токен.

 updater = Updater(os.getenv("TOKEN")) 

Updater — это класс, который будет постоянно проверять Telegram на наличие новых сообщений для нашего бота.

Когда программа обновления получает новое сообщение, она передает его диспетчеру. Диспетчер проверяет, есть ли у нас подходящий обработчик для сообщения. Как упоминалось выше, мы определяем наш для обработки команд «/start» и «/help». Мы делаем это с add_handler функция, например:

 dispatcher.add_handler(CommandHandler("start", help_command)) 

и

 dispatcher.add_handler(CommandHandler("help", help_command)) 
90 077

Для простоты, команда «/start» и команда «/help» имеют здесь один и тот же обработчик, но вы можете выбрать разные функции для обработки каждой из них, если хотите.

Затем нам нужно сообщить программе обновления, чтобы она начала проверять наличие новых сообщений. Мы достигаем этого с помощью этой строки:

 updater.start_polling() 

Важно знать, что start_polling является неблокирующей функцией. Это означает, что код не остановит выполнение здесь. Это будет продолжаться до тех пор, пока программа не завершится.

Другими словами, если мы оставим это как последнюю строку основной функции , код будет выполняться, а затем немедленно завершится, потому что ничто другое не блокирует его. Итак, чтобы наш бот слушал, мы используем строку updater.idle() , чтобы заблокировать скрипт, пока мы его слушаем.

Функция ведения журнала​

Согласно тексту справки, бот должен делать две вещи.

  1. Если вы отправляете сообщение боту, он должен его как-то сохранить.

  2. Если вы отправите боту команду «/fetch», он должен отправить вам последнее сообщение.

Для этого мы будем использовать базу данных ключей и значений Replit. Начните с импорта API.

 из повторного импорта db 

db — это объект, который ведет себя как словарь, но сохраняет свое содержимое между запусками. Он также сериализует свои ключи в виде строк.

Так как мы хотим хранить зарегистрированные сообщения в определенном порядке, но объект db по своей сути не упорядочен, давайте создадим вспомогательную функцию, которая может получить самый большой ключ (при условии, что мы собираемся использовать только числовые индексы). Добавьте эту функцию перед определением функции help_command :

 def last_key(): 
ks = db.keys()
if len(ks):
return max(map(int, ks))
else:
return -1

last_key получает все ключи из нашей базы данных. Если есть ключи, преобразуйте их все в целые числа и верните самый большой из них. Если ключей нет, возвращает -1 .

Теперь мы можем создать обработчик, который записывает сообщения пользователя в базу данных. Добавьте эту функцию после определения функции help_command :

 def log(update: Update, context: CallbackContext) -> None: 
db[str(latest_key() + 1)] = update.message.text

Получает последний ключ из базы данных, увеличивает его на единицу и устанавливает новую пару ключей с сообщением.

Однако это не будет выполнено, пока мы не зарегистрируем обработчик, поэтому добавьте следующую строку после других строк dispatcher.add_handler(...) :

 dispatcher.add_handler(MessageHandler(Filters.text & ~Filters. команда, журнал)) 

Вы можете заметить, что MessageHandler используется вместо CommandHandler . Это более общий обработчик, который выбирает сообщения на основе предоставленных вами флагов. В этом случае он обрабатывает сообщения, которые содержат текст, но не являются командами.

Теперь мы можем регистрировать сообщения, но пока не видим их. Давайте добавим обработчик, который позволяет пользователю получать последнее сообщение. Добавьте эту функцию после определения функции журнала :

 def fetch(update: Update, context: CallbackContext) -> None: 
update.message.reply_text(db.get(str(latest_key()), 'No Сообщений пока нет.'))

Мы можем зарегистрировать его вместе с другими обработчиками команд. Добавьте это после существующих строк dispatcher.add_handler(...) :

 dispatcher.add_handler(CommandHandler("fetch", fetch)) 

Теперь, когда у нас есть функциональный бот, мы хотим добавить веб-интерфейс для этого. Мы будем использовать инструмент Flask. Мы можем включить следующий код после других импортов и перед определением функции last_key .

 из ячейки импорта математики 
из flask import render_template
из flask import Flask
app = Flask(__name__)

@app.route('/')
@app.route('/')
def home(page=None) :
ks = sorted(map(int, db.keys()))
pages = ceil(len(ks) / 10)
если страница None: #По умолчанию последняя страница
page = pages

if page < pages :
next_page = page + 1
else:
next_page = None
if page > 1:
prev_page = page - 1
else:
prev_page = None

messages = tuple(db[str(key)] for key in ks[(page-1)*10:page*10])

return render_template('home. html', messages=messages, next_page=next_page, page=page, prev_page=prev_page)

Это определяет небольшое приложение Flask. Replit позаботится об импорте нашего Flask. Для этого урока мы создадим только одну страницу.

Мы сообщаем Flask, как страница должна быть доступна с помощью специальных декораторов. @app.route('/') говорит, что когда пользователь обращается по адресу https://example.com , он будет обслуживать этот обработчик. В этом случае для переменной page по умолчанию будет установлено значение None.

@app.route('/') говорит, что когда пользователь получает доступ к чему-то вроде https://example.com/4 , он откроет страницу 4 зарегистрированных сообщений. В этом случае для переменной page будет установлено значение 4.

Это пока не сработает, потому что наш шаблон home.html не существует. Давайте создадим это сейчас в папке под названием «templates» (т. е. templates/home.html):

  

Сообщения - Страница {{ page }}



    {% для сообщений в сообщениях %}
  • {{ msg | escape }}

  • {% endfor %}

{% if prev_page %}Предыдущая страница{% endif %}
{% if prev_page and next_page %}|{% endif%}
{% if next_page %}Следующая страница{% endif %}

Это Шаблон выводит страницу зарегистрированных сообщений и ссылки на следующую или предыдущую страницу внизу.

Для шаблона требуется переменная "page" для номера страницы и массив "сообщений", которые перебираются и отображаются в виде списка. Он также принимает переменные «prev_page» и «next_page», которые мы используем для создания ссылок на предыдущую и следующую страницы, если они существуют соответственно. Все это предоставляется в нашей функции маршрута выше, когда мы запускаем render_template .

Как рассчитать максимальное количество страниц?

 страниц = ceil(len(ks)/10) 

То есть мы делим количество ключей в нашей базе данных Replit на десять и округляем в большую сторону. Мы также можем использовать этот номер по умолчанию. Таким образом, если кто-то посещает простой маршрут «/», мы просто отобразим последнюю страницу.

 если страница None: 
страница = страницы

Мы знаем, что последние сообщения будут "самыми последними", потому что мы отсортировали их в порядке возрастания в предыдущей строке.

"prev_page" и "next_page" — это текущая страница, которая либо уменьшается, либо увеличивается, если они являются допустимыми номерами страниц (в противном случае установите значение None, чтобы шаблон их не отображал).

Если мы запустим нашу программу сейчас, веб-приложение Flask еще не будет работать. Flask должен прослушивать запросы аналогично библиотеке Telegram. Обычно мы можем завершить программу с помощью app.run() , чтобы запустить сервер Flask.

Проблема в том, что эта строка кода никогда не была бы достигнута в обычных обстоятельствах, потому что у нас есть строка updater.idle() , блокирующая наш код до этого.