Создание простого интерактивного Телеграм бота на Python: полное руководство
Создание Telegram-бота может быть увлекательным проектом, независимо от того, хотите ли вы автоматизировать задачи, взаимодействовать с пользователями в режиме реального времени или просто экспериментировать с программированием. Сегодня я проведу вас через процесс создания простого, но интерактивного Telegram-бота с использованием библиотеки Python. К концу этого руководства у вас будет бот, который реагирует кнопками и плавно обрабатывает взаимодействие с пользователем.python-telegram-bot
Интересует создание миниапсов или ботов в телеграмме?
Хотите заказать или научиться делать сами?
Обращайтесь в наш канал Вокруг Крипты
Необходимые условия
Прежде чем мы начнем, убедитесь, что у вас есть следующее:
- Python 3.6+ установлен на вашем компьютере.
- Аккаунт в Telegram для взаимодействия с BotFather и тестирования вашего бота.
- Библиотека python-telegram-bot, которую вы можете установить через pip:
pip install python-telegram-bot --upgrade
Шаг 1: Получите токен Telegram Bot
Для начала нужно создать бота в Telegram:
- Найдите BotFather в своем приложении Telegram.
- Запустите чат и используйте команду для создания нового бота.
/newbot
- Следуйте инструкциям, чтобы задать имя и имя пользователя для бота.
- BotFather подарит вам токен. Храните этот токен в безопасности, так как он будет использоваться для доступа к Telegram API.
Шаг 2: Настройка скрипта Python
Создайте новый файл Python с именем и начните с импорта необходимых модулей из пакета:telegram_bot.pytelegram.ext
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkupfrom telegram.ext import CommandHandler, CallbackQueryHandler, Application, ContextTypespip install python-telegram-bot
Шаг 3: Написание асинхронных обработчиков ботов
Вы определите несколько асинхронных функций для обработки различных команд и взаимодействий:
Команда «Старт»
Когда пользователь запустит вашего бота, он отправит приветственное сообщение и покажет кнопки опций:
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text("Welcome to the Simple Telegram Bot!") await show_option_buttons(update, context)
Отображение кнопок опций
Эта функция отправляет сообщение со встроенными кнопками для взаимодействия с пользователем:
async def show_option_buttons(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: keyboard = [ [InlineKeyboardButton("Option 1", callback_data='button_1')], [InlineKeyboardButton("Option 2", callback_data='button_2')], [InlineKeyboardButton("Option 3", callback_data='button_3')], ] reply_markup = InlineKeyboardMarkup(keyboard) await update.message.reply_text('Please choose an option:', reply_markup=reply_markup)
Управление выбором кнопок
При нажатии кнопки бот отредактирует сообщение, чтобы показать, какой вариант был выбран:
async def button_selection_handler(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: query = update.callback_query await query.answer() await query.edit_message_text(f'You selected option: {query.data.split("_")[1]}')
Шаг 4: Добавление дополнительных команд
Теперь, когда у вас есть базовый бот, вы можете легко добавить больше команд. Например, добавим команду:/help
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None: await update.message.reply_text( 'I can respond to the following commands:\n/start - Start the bot\n/help - Get help information' )
Шаг 4: Запуск бота
Настройте приложение с помощью токена бота, зарегистрируйте обработчики для команд и начните опрос:
def main(): application = Application.builder().token(API_TOKEN).build() application.add_handler(CommandHandler('start', start)) application.add_handler(CommandHandler('help', help_command)) application.add_handler(CallbackQueryHandler(button_selection_handler, pattern='^button_')) application.run_polling()if __name__ == '__main__': main()
Заключительные мысли
Вы успешно создали и запустили своего первого Telegram-бота с Python всего за 5 минут! Конечно, это простой бот, но возможности для того, что вы можете создать, безграничны. Вы можете расширить бота для выполнения более сложных задач, таких как получение данных, отправка оповещений или даже взаимодействие с API.
Вы можете найти полный код, описанный в этой статье, в моем репозитории GitHub: simple_telegram_bot.