Найти тему
Учимся IT вместе!

День 3. Разработка Бота, которого уже могут купить.

Оглавление

В прошлой статье мы успешно сделали простого эхо-бота и пора приступать к идеям, которыми можно будет пополнять наше портфолио и заработать!

Сегодня мы:

  • Разработаем идею бота
  • Составим минимальное ТЗ
  • Изучим 2 вида кнопок в боте
  • Научимся вставлять их в проект

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

Идея для первого бота

Сделаем бота для школы английского языка. Это будет подобием сайта для компании, где клиенты смогут узнать всю информацию об обучении и что она может им предложить. Интерактивом для выявления потребностей и в дальнейшем поводом для продажи будет тест на определение уровня языка. Ниже прописано из чего будет состоять меню:

Меню

  • О нас
  • Тест на уровень английского
  • Курсы
  • Контакты

Каждый пункт из меню разберем подробнее в следующих статьях.

Примечание!
Будем работать с тем же файлом, что и на прошлом занятии.

Клавиатуры и кнопки

В первую очередь нам нужно будет сделать кнопки. Это можно сделать 2 способами: InlineKeyboard, ReplyKeyboardMarkup.

В чем разница?

Главное меню школы иностранных языков будет состоять из кнопок с помощью ReplyKeyboard.

ReplyKeyboard

Каждое действие расписано в комментариях.

-3

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

Для этого ищем наш message_handler с командой /start в нашем файле и внутри функции меняем наш text на приветствие школы и атрибуту reply_markup присваиваем нашу клавиатуру с кнопками menu_kb. Таким образом при старте бота обычная клавиатура пропадет и появится меню.

Также мы можем поменять наклон и жирность текста в сообщении с помощью команд:

<b> Привет </b> ----> Привет

<i> Привет </i> ----> Привет

Для этого нужно вписать parse_mode="html" как в скриншоте ниже

\n нужен для нового абзаца
\n нужен для нового абзаца

Попробуем запустить нашу программу!

-5

Все работает! Пока что, если нажать на эти кнопки, бот лишь отправит то же самое, что и написано на них, но это исправим уже в следующей статье.

InlineKeyboard

Теперь научимся добавлять второй тип кнопок - InlineKeyboard. Главное отличие от ReplyKeyboard в том, что тут кнопка будет прикреплена к сообщению, а не к команде. Подробный функционал с инлайновой клавиатурой будет прописан в тесте на знание английского, а сейчас просто добавим его к сообщению из команды /help

-6

-7

Итоги:

Сегодня мы научились добавлять кнопки и создали меню в боте школы английского. Завтра будем учиться разбивать наш рабочий файл с программой на разные подфайлы, создадим архитектуру нашего проекта.