Существует множество различных статей и учебных пособий по созданию ботов для телеграмм, некоторые из них достаточно сложны, часть требует знания отдельных технологий и фреймворков. В данной статье мы рассмотрим создание чат бота в мессенджере Telegram с нуля. От нас не будет требоваться каких-то специальных знаний. Для начала достаточно будет начальных знаний языка Python в качестве языка программирования.
Часть 1: Регистрация нового Telegram Bot-а
Для начала вы должны быть зарегистрированы в Telegram- мессенджере. Далее, вы в мобильной, десктопной или web-версии мессенджера открываете общение с ботом @BotFather, либо по ссылке https://telegram.me/botfather.
После начала общения с этим ботом, нажав /start, вы получите ответ от бота с указанием его возможностей. Нас интересует создание нового бота - /newbot.
После того как мы введем /newbot нас попросят придумать имя для нашего нового бота. Пусть оно будет MyFirstTestBot.
После этого BotFather высылает нам специальный токен:
Наш токен оказался: 851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM (В вашем случае токен будет другой.)
Этот токен понадобится нам при настройке нашего бота. Токен должен быть сохранён. Именно он является единственным ключем для взаимодействия с ботом.
Также мы получаем ссылку на нашего бота. В моем случае это t.me/mft001_bot.
Теперь наш Tekegram-бот создан. Мы можем начать настраивать своего бота, например, установить изображение для бота, изменить или добавить описание бота и тп.
С регистрацией бота мы закончили. Наш бот уже есть, но на данный момент он еще ничего не умеет. Теперь нам нужна его начинка – какой-то механизм, который будет обрабатывать наши запросы к этому боту и возвращать нам ответы.
Часть 2 Написание кода
Как и написано выше мы будем создавать нашего бота на языке Python. Установите его с официального сайта, если вы используете Windows или выполните команду в терминале на Linux:
sudo apt-get install python python-pip
Далее воспользуемся системой управления пакетами PIP, которая используется для установки и управления программными пакетами, и установим библиотеку PyTelegramBotAPI (Telebot):
pip install pytelegrambotapi –user
Создадим логику работы нашего бота. Используя полноценный IDE или простой текстовый редактор создадим файл ourbot.py и заполним его необходимой логикой.
Для начала нам нужно выполнить импорт библиотеки PyTelegramBotAPI (Telebot), написав в нашем файле:
import telebot
Далее подключим нашего бота, используя полученный ранее токен:
bot = telebot.TeleBot('851216368:AAG6_JHHsIqAK-lX2CxOWQHTAM109zdrcZM')
Теперь создадим метод, для получения сообщений.
Возможности PyTelegramBotAPI позволяют отправлять боту аудио (content_types=['audio'), видео (content_types=['video'), документы (content_types=['document'), текст (content_types=['text'), географический адрес (content_types=['location'), данные контакта (content_types=['contact') и стикеры (content_types=['sticker'). Мы, для простоты опыта, будем общаться с ботом только текстом:
@bot.message_handler(content_types=['text'])
def handle_text_messages(message):
Теперь рассмотрим логику обработки наших текстовых сообщений. Мы хотим захардкодить простое общение бота с пользователем: бот должен уметь здороваться, когда с ним здороваются, уметь отвечать на вопросы «Кто ты?», «Как тебя зовут?» и «Что ты умеешь?».
if message.text == "Привет":
bot.send_message(message.from_user.id, "Привет")
elif message.text == "Кто ты?":
bot.send_message(message.from_user.id, "Я тестовый чатбот для учебного примера.")
elif message.text == "Как тебя зовут?":
bot.send_message(message.from_user.id, "Меня зовут MyFirstTestBot.")
elif message.text == "Что ты умеешь?":
bot.send_message(message.from_user.id, "Я умею отвечать на несколько простых вопросов - кто я, как меня зовут и что я умею делать.")
else:
bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши что-то другое.")
После тела метода, обрабатывающего наши запросы к боту, добавим вызов метода:
bot.polling(none_stop=True, interval=0)
Задачей этого метода является создание потока, в котором бот отправляет запросы на сервер, уточняя таким способом, не писал ли ему кто-то сообщение. Параметр none_stop: False означает, что наша программа будет продолжать отправлять запросы на сервер после получения сообщения об ошибке от сервера Telegram.
Сохраним наш код:
Мы можем протестировать работу нашего бота, запустив его код в той IDE, в которой мы писали. И написав нашему боту в мессенджере.
Все работает.
Наш учебный Telegram-бот создан. Мы можем запустить наш файл локально, и он будет отрабатывать запросы к нему через мессенджер прямо на нашем компьютере, выступающим в роли сервера. Но это не очень удобная практика. Для нормальной работы код желательно залить на отдельный сервер и запустить его там.
Вопросы заливки нашего простого бота на сервер мы рассмотрим в следующей статье.
Резюме
Как мы увидели, создание работающего бота на Python для Telegram мессенджера достаточно просто. Для простых ботов не нужно использовать сложные решения - есть удобная библиотека PyTelegramBotAPI, позволяющая решить такие задачи. В нашем учебном примере мы рассмотрели только работу с текстом, но, благодаря этой библиотеке, бот может работать и с другими форматами данных. Попробуйте сами сделать своего бота, отвечающего на ваши вопросы.
С нашей стороны мы рекомендуем ознакомиться с курсом подготовки Python-разработчика. Знания, полученные после прохождения данного курса позволят вам не только создавать различные приложения, но и получить полноценную профессию разработчика программного обеспечения.
Статья взята с сайта ITVDN.com - https://itvdn.com/ru/blog/article/telegrambot-1