Создаем Telegram бота на Python часть-1
ITVDN: курсы программирования
Видеокурсы по
программированию

Выбери свою IT специальность

Начать бесплатно
ITVDN logo
Видеокурсы по
программированию

Выбери свою IT специальность

Начать бесплатно

Существует множество различных статей и учебных пособий по созданию ботов для телеграмм, некоторые из них достаточно сложны, часть требует знания отдельных технологий и фреймворков. В данной статье мы рассмотрим создание чат бота в мессенджере Telegram с нуля. От нас не будет требоваться каких-то специальных знаний. Для начала достаточно будет начальных знаний языка Python в качестве языка программирования.

 

Часть 1: Регистрация нового Telegram Bot-а

Для начала вы должны быть зарегистрированы в Telegram- мессенджере. Далее, вы в мобильной, десктопной или web-версии мессенджера открываете общение с ботом @BotFather, либо по ссылке  https://telegram.me/botfather.

После начала общения с этим ботом, нажав /start, вы получите ответ от бота с указанием его возможностей. Нас интересует создание нового бота - /newbot.

После того как мы введем /newbot нас попросят придумать имя для нашего нового бота. Пусть оно будет MyFirstTestBot.


Далее нам нужно придумать юзернэйм для нашего бота. В нашем случае это будет mft001_bot.

После этого 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

Стартовый
подписка

Все видео курсы на 3 месяца за 49.99 $

0
Базовый
подписка

Все видео курсы на 6 месяцев за 89.99 $

1
Премиум
подписка

Все видео курсы на 12 месяцев за 169.99 $

2
Notification success