Создание чат-бота в Телеграме для обратной связи и поддержки пользователей (туториал для новичков)
Этот туториал поможет вам создать Telegram-бота на Python, который будет пересылать сообщения пользователю-администратору с возможностью ответить на них. Мы будем использовать библиотеку pyTelegramBotAPI.
- Советую ознакомиться с вводными данными про Телеграм и его ботов по этому тэгу.
- Про выбор библиотеки рассказано тут.
Шаг 1: Установите необходимые инструменты
Установка Python
Скачайте и установите Python с официального сайта: python.org. Рекомендуется использовать последнюю версию.
- Python — это популярный язык программирования, который используется для создания веб-сайтов, программного обеспечения, анализа данных и многих других задач. Он отличается простотой и читаемостью кода, что делает его удобным для обучения и использования.
Python хорош для создания ботов в Telegram из-за библиотек, простого синтаксиса, надежности и развитой экосистемы. - Подробная инструкция по установке Python есть на сайте Питончик.
Установка библиотеки pyTelegramBotAPI
- Откройте терминал или командную строку.
- Установите библиотеку, выполнив команду:
pip install pyTelegramBotAPI
pyTelegramBotAPI — это популярная и удобная библиотека для создания ботов в Telegram на Python. Она предоставляет простой и понятный интерфейс для взаимодействия с API Telegram, позволяет легко обрабатывать команды и сообщения, а также имеет хорошую документацию и поддержку сообщества.
Чтобы открыть терминал или командную строку, следуйте инструкциям:
Шаг 2: Создайте нового бота в Telegram
Создание бота через @BotFather
- Найдите @BotFather в Telegram.
- Отправьте команду
/start
, затем/newbot
. - Следуйте инструкциям для создания нового бота. Вам нужно будет задать имя и юзернейм бота.
- После создания бота вы получите токен API. Сохраните его, он понадобится позже.
Подробнее про регистрацию бота можно узнать в этой статье.
Шаг 3: Создайте файл с кодом бота
Создайте новый файл
Создайте новый файл в каком-нибудь укромном месте на своём компьютере, назовите файл как вашей душе угодно, например bot.py
.
Рекомендации по программному обеспечению для новичков:
- Скачайте и установите Visual Studio Code (VS Code) — это бесплатная программа для написания кода, которая работает на разных операционных системах. Она поддерживает множество языков программирования, включая Python, и предоставляет удобную среду для разработки с возможностями поиска ошибок, управления версиями, работы с Git, автоматическим завершением кода и многим другим.
В VS Code можно установить дополнительные расширения, чтобы настроить среду разработки под свои нужды.
Как подготовить VS Code к работе с Python-файлами, читайте в этой статье на Питончике.
Добавьте следующий код в ваш файл bot.py
import telebot from telebot import types # Инициализация бота токенами API_TOKEN = 'YOUR_API_TOKEN' ADMIN_CHAT_ID = 'YOUR_ADMIN_CHAT_ID' bot = telebot.TeleBot(API_TOKEN) # Обработка входящих сообщений @bot.message_handler(func=lambda message: True) def handle_user_message(message): # Пересылка сообщения администратору с кнопкой ответа forward_message = bot.forward_message(ADMIN_CHAT_ID, message.chat.id, message.message_id) markup = types.InlineKeyboardMarkup() reply_button = types.InlineKeyboardButton("Ответить", callback_data=f"reply:{message.chat.id}:{forward_message.message_id}") markup.add(reply_button) bot.send_message(ADMIN_CHAT_ID, f"Новое сообщение от {message.chat.id}:", reply_markup=markup) # Обработка нажатия кнопки ответа @bot.callback_query_handler(func=lambda call: call.data.startswith("reply:")) def handle_reply_button(call): try: # Извлечение данных из callback_data _, user_id, message_id = call.data.split(":") # Отправка администратору просьбы ввести ответ sent_message = bot.send_message(ADMIN_CHAT_ID, "Введите ваш ответ:") # Хранение данных о пользователе и сообщении для последующего ответа bot.register_next_step_handler(sent_message, send_reply, user_id) except Exception as e: bot.send_message(ADMIN_CHAT_ID, f"Произошла ошибка: {e}") def send_reply(message, user_id): # Отправка ответа пользователю bot.send_message(user_id, message.text) bot.send_message(ADMIN_CHAT_ID, f"Ответ отправлен: {user_id}") # Опрос для постоянной работы бота bot.infinity_polling()
Замените YOUR_API_TOKEN
и YOUR_ADMIN_CHAT_ID
на ваши данные
YOUR_API_TOKEN — это токен, который вы получили от @BotFather.
YOUR_ADMIN_CHAT_ID — это ваш личный chat ID в Telegram. Чтобы узнать ваш chat ID, вы можете использовать любого бота, который покажет вам ваш chat ID, например, @userinfobot.
Шаг 4: Запуск бота
- Запустите бот
- Откройте терминал или командную строку.
- Перейдите в директорию, где находится ваш bot.py.
- Запустите бота командой:
python bot.py
- Проверьте работу бота:
Подробнее о том, как запускать скрипты на Python, можно в статье на Питончике.
Итог
Теперь у вас есть работающий Telegram-бот, который пересылает сообщения администратору и позволяет ему отвечать на них.
Если у вас есть вопросы или проблемы, не стесняйтесь спрашивать!
Далее
Ссылки по теме
- Вводные данные про Телеграм и его ботов.
- Про выбор библиотеки рассказано тут.
- Про регистрацию и настройку Телеграм-бота
- 6 способов запустить скрипт на Python
- VS Code — настройка и использование для Python-кода