Рабочий бэкенд за 10 минут: простой проект телеграм-бота
easy

Рабочий бэкенд за 10 минут: простой проект телеграм-бота

Часть 1: запускаем бэкенд в домашних условиях

Сегодня покажем вам пример, как сделать могучий бэкенд без особой потребности во фронтенде. Сейчас объясним. 

Почти все сервисы, приложения и сайты работают по такой схеме:

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

Сегодня мы сделаем для собственного телеграм-бота полноценный бэкенд, который будет делать какие-то простые вещи. Так у нас получится полноценный сервис, который состоит в основном из бэкенда. Придётся сделать это в несколько частей, но мы с вами справимся. Сегодня элементарный шаг. 

Первый шаг: создание бота

Создадим нового телеграм-бота и посмотрим, что он умеет делать, если не настраивать вообще ничего. Для этого в Телеграме находим канал @BotFather (он отвечает за регистрацию новых ботов), нажимаем там Start и пишем команду /newbot. Нас по очереди спросят про название бота и его никнейм, после чего дадут нового бота и токен для управления им. Токен сохраним, он пригодится чуть позже. 

У нас появился новый бот — @thecode_test_bot. При запуске нас сразу встречает кнопка «Старт» — нажмём и посмотрим, что произойдёт:

Рабочий бэкенд за 10 минут: простой проект телеграм-бота

Ничего не случилось: бот получил команду /start, но не сделал ничего по этому поводу. Теперь попробуем что-то написать:

Рабочий бэкенд за 10 минут: простой проект телеграм-бота

Сейчас бот ничего не умеет и не реагирует на наши действия. Это всё из-за того, что у нас сейчас есть только фронт (Телеграм), но нет бэка — внутренней логики бота. Попробуем это исправить и посмотрим, что получится. 

Второй шаг: запуск бэкенда

Чтобы было проще, весь бэкенд мы сделаем не на сервере, а у себя на компьютере. Единственное, что нам понадобится для этого, — установленный Python и наша статья про телеграм-бота.

Для простоты мы сейчас научим бота реагировать на базовую команду /start — с неё начинаются все боты в Телеграме. Возьмём код из статьи, выкинем из него всё лишнее и добавим в него функцию, которая будет обрабатывать эту команду. 

Обратите внимание, что в коде мы будем использовать библиотеку telebot. Чтобы она у вас появилась, нужно её установить. Для этого в терминале используется такая команда: 

$ pip install pyTelegramBotAPI

Ещё нам понадобится токен, который мы получили в момент создания бота. Токен позволяет соединить фронтенд в виде телеграм-чата с бэкендом — то есть с нашим скриптом. Для этого копируем токен и вставляем его в соответствующую переменную. Делиться этим токеном нельзя — если его кто-то узнает, то сможет управлять вашим ботом.

Итак, простой бэкенд-скрипт для бота:

# подключаем модуль для Телеграма
import telebot

# указываем токен для доступа к боту
bot = telebot.TeleBot(123456789:AAAAA12345678abcdef12345678abcdef')

# приветственный текст
start_txt = 'Привет! Это журнал «Код». \n\nТеперь у бота появился бэкенд.'


# обрабатываем старт бота
@bot.message_handler(commands=['start'])
def start(message):
    # выводим приветственное сообщение
    bot.send_message(message.from_user.id, start_txt, parse_mode='Markdown')

# запускаем бота
if __name__ == '__main__':
    while True:
        # в бесконечном цикле постоянно опрашиваем бота — есть ли новые сообщения
        try:
            bot.polling(none_stop=True, interval=0)
        # если возникла ошибка — сообщаем про исключение и продолжаем работу
        except Exception as e: 
            print('❌❌❌❌❌ Сработало исключение! ❌❌❌❌❌')

Запускаем этот скрипт у себя на компьютере и отправляем боту заново команду /start. В ответ получаем текст, который только что прописали в скрипте. Это значит, что бэкенд работает и теперь бот умеет реагировать на свой старт:

Рабочий бэкенд за 10 минут: простой проект телеграм-бота

При этом на всё остальное бот ещё не умеет реагировать, потому что мы это не прописывали в бэкенде:

Рабочий бэкенд за 10 минут: простой проект телеграм-бота

Что получилось

  1. На нашем компьютере работает программа, которая исполняет функции бэкенда.
  2. В Телеграме у нас запущен бот, который исполняет функции фронтенда.
  3. Теперь мы можем докручивать логику бэкенда, чтобы бот по-разному реагировал на разные команды с фронтенда.

Этим мы и займёмся в следующий раз.

Художник:

Алексей Сухов

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Соцсети:

Виталий Вебер

Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Вам может быть интересно
easy