June 6, 2024

Создание чат-бота в Телеграме для обратной связи и поддержки пользователей (туториал для новичков)

Выдал Kindergarten Diffusion по запросу "Robot + Human"

Этот туториал поможет вам создать Telegram-бота на Python, который будет пересылать сообщения пользователю-администратору с возможностью ответить на них. Мы будем использовать библиотеку pyTelegramBotAPI.

Шаг 1: Установите необходимые инструменты

Установка Python

Скачайте и установите Python с официального сайта: python.org. Рекомендуется использовать последнюю версию.

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

Установка библиотеки pyTelegramBotAPI

  1. Откройте терминал или командную строку.
  2. Установите библиотеку, выполнив команду: pip install pyTelegramBotAPI

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

Чтобы открыть терминал или командную строку, следуйте инструкциям:

Windows:

  1. Нажмите клавиши Windows + R, чтобы открыть диалоговое окно «Выполнить».
  2. Введите "cmd" и нажмите Enter. Это откроет командную строку.

Шаг 2: Создайте нового бота в Telegram

Создание бота через @BotFather

  1. Найдите @BotFather в Telegram.
  2. Отправьте команду /start, затем /newbot.
  3. Следуйте инструкциям для создания нового бота. Вам нужно будет задать имя и юзернейм бота.
  4. После создания бота вы получите токен API. Сохраните его, он понадобится позже.

Подробнее про регистрацию бота можно узнать в этой статье.

Шаг 3: Создайте файл с кодом бота

Создайте новый файл

Создайте новый файл в каком-нибудь укромном месте на своём компьютере, назовите файл как вашей душе угодно, например bot.py.

Рекомендации по программному обеспечению для новичков:

  1. Скачайте и установите 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: Запуск бота

  1. Запустите бот
    1. Откройте терминал или командную строку.
    2. Перейдите в директорию, где находится ваш bot.py.
    3. Запустите бота командой:
      python bot.py
  2. Проверьте работу бота:
    1. Найдите вашего бота в Telegram и отправьте ему сообщение.
    2. Сообщение должно переслаться администратору с кнопкой «Ответить».
    3. Нажмите кнопку "Ответить" и введите ответное сообщение. Ответ должен отправиться пользователю.

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

Итог

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

Если у вас есть вопросы или проблемы, не стесняйтесь спрашивать!

Далее

Далее я расскажу как разместить бота на VDS-сервере.

Ссылки по теме

Изображение подписано