Your AI powered learning assistant

Как создать Telegram-Бота на Python для начинающих (Туториал 2023)

Intro

00:00:00

В этом видео мы узнаем, как создать telegram-бота с помощью Python. Бот будет совместим как с группами, так и с приватными чатами. Мы создали новую версию на 2023 год из-за некоторых незначительных изменений в API.

Setting up the bot

00:00:31

Чтобы настроить бота, откройте Telegram на своем мобильном телефоне или компьютере и найдите "BotFather". Нажмите на "BotFather" и нажмите "Пуск". Выберите имя для вашего бота (например, Banana Bot) и имя пользователя, включающее "bot". Скопируйте токен доступа, предоставленный BotFather. В PyCharm импортируйте typing.final, чтобы присвоить константам, таким как token и bot username, их типы. Настройте описание бота, текст о нем, изображение профиля, используя такие команды, как "/установить описание", "/установить текст о боте", "/установить изображение пользователя". Наконец, настройте команды, но об этом мы поговорим позже.

Creating the commands

00:04:20

Чтобы начать кодировать нашего Telegram-бота, нам сначала нужно установить пакет "python-telegram" с помощью pip. После установки мы импортируем необходимые элементы из пакета и создаем такие команды, как "пуск" и "справка". Мы также определяем функцию под названием 'handle_response' для обработки пользовательского ввода и генерации соответствующих ответов.

Handling incoming messages

00:09:08

Обработка входящих сообщений Создайте функцию для обработки входящих сообщений. Функция принимает обновление типа 'update' и контекст типа 'contextypes.default'. Сначала он проверяет, находится ли сообщение в групповом или приватном чате, обратившись к свойству 'chat.type'. Затем он создает строковую переменную с именем 'text', в которой хранится текст входящего сообщения из 'update.message.text'. Для отладки распечатайте идентификатор пользователя и текст, используя отформатированные строки. Если это групповой чат и содержит "@username", замените "@username" пустой строкой после удаления начальных/конечных пробелов из "text". Создайте другую переменную с именем 'response', которая вызывает другую функцию с именем `handleResponse`, передавая этот новый измененный текст в качестве аргумента, если мы пытаемся поговорить с ботом в групповом чате; в противном случае возвращаемся из этой функции, поскольку бот не должен отвечать, если явно не указано его имя пользователя.

Наконец, зарегистрируйте, что бот дал ответ в целях отладки, прежде чем отправлять ответ обратно, используя `await update.message.reply_text(response)`. Также создайте отдельный асинхронный def для обработки ошибок, где вы можете передавать обновления и типы контекста в качестве аргументов точно так же, как описанные выше функции, но печатать только ту конкретную ошибку, которая произошла во время выполнения.

Running the bot

00:16:32

Чтобы запустить бота в Telegram, откройте приложение и перейдите в раздел "Отец бота". Введите "/help", чтобы просмотреть все доступные команды. Затем используйте "/setcommands", затем выберите "Banana Bots" и введите три команды: "Пуск", "справка" и "...

Commands

00:17:20

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

Creating a Group

00:19:35

Чтобы создать группу, нажмите на "Новая группа" и дайте ей название. Добавляйте участников в группу, например "Банановый бот". Чтобы включить связь с Banana Bot, повысьте его до администратора, перейдя в раздел "Просмотр информации о группе", щелкнув правой кнопкой мыши по имени Banana Bot, выбрав "Повысить до администратора" и выбрав необходимые разрешения. Теперь вы можете упоминать "@BananaBot" в сообщениях, чтобы он ответил.

Outro

00:21:02

Чтобы расширить функциональность Banana Bot, мы можем упомянуть о нем непосредственно в групповом чате. Таким образом, он будет отвечать только при упоминании, а не на каждое сообщение. При повторном запуске скрипта с этим обновлением Banana Bot теперь будет отвечать только на упоминания. Кроме того, в консоли отображается информация о протоколировании сообщений пользователя. В приватных чатах, если мы говорим "Эй" или "Привет", бот реагирует соответствующим образом.