Создать телеграм бот конструктор

Обновлено: 01.02.2023

Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

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

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.


Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
И так, начнём же.

BotFather

Для начала нам надо зарегистрировать нашего бота в Telegram. Для этого:

В поиске вбиваем @BotFather и переходим в диалог с Отцом Ботов.

Пишем /newbot. Указываем имя бота (то, что отображается в диалогах). Указываем его логин, по которому его можно булет найти.

P.S. Оно должно заканчиваться на Bot/bot

Вот. Нам дали API ключ и ссылку на бота. Желательно сохранить API ключ и перейти в диалог с ботом, чтобы потом не копаться в переписке с BotFather

all - спарсить заголовки с вкладки "ВСЁ ПОДРЯД"
top - спарсить заголовки с вкладки "ЛУЧШЕЕ"

На этом работа с BotFather закончилась, перейдём к следующей части.

Установка и настройка pipenv. Первый запуск.

Для начала создадим файл, в котором будет основной код бота bot.py. Если бот большой, то сразу создавайте файлы, куда вы вынесете функции, классы и т.д, иначе читаемость кода стремится к нулю. Я добавлю parser.py

Установим pipenv, если его конечно ещё нет.


Установим pipenv в папку проекта.


Установим интересующие нас библиотеки. Я буду работать с PyTelegramBotAPI. Также для парсинга добавим BeautifulSoup4.


Начинаем писать код!

Открываем bot.py, импортируем библиотеки и создаём главные переменные.


Запустим бота. Посмотри наличие ошибок.

Если ошибок не появилось, то продолжим.

Пришло время научить бота отвечать нам. Возможно даже сделать его ответы полезными.

Основы взаимодействия. Ответ на команды

Начнём с самого простого: ответим на команды /start и /go

Теперь можно запустить бота и написать ему /start или /go и он ответит.

Добавим вот такой код.

Основы взаимодействия. Ответ на картинки, документы, аудио и прочие.

Для ответа на картинки, стикеры, документы, аудио и т.д. нужно всего лишь поменять content_types=['text'].

Рассмотрим пример с картинкой, добавив этот код.


Все типы контента:

text, audio, document, photo, sticker, video, video_note, voice, location, contact, new_chat_members, left_chat_member, new_chat_title, new_chat_photo, delete_chat_photo, group_chat_created, supergroup_chat_created, channel_chat_created, migrate_to_chat_id, migrate_from_chat_id, pinned_message

Но, есть тут проблема. Можно повторно вызвать команду /go или /start, и начнётся бардак.


Пофиксить это несложно, добавим переменную для проверки состояния выполнения скрипта.


С построением простых цепочек мы разобрались, пойдём дальше.

Добавляем парсер в цепочку.

Для начала нужен сам парсер. Обратим внимание на то, что во вкладках «Лучшее» и «Всё подряд» есть дополнительные фильтры: сутки, неделя, месяц и ≥10, ≥25, ≥50, ≥100 соответственно.
Парсер конечно можно написать и в 1 функцию, но я разобью на 2, так будет проще читать код.

По итогу парсер возвращает нам строку с заголовками статей, основываясь на наших запросах.
Пробуем, используя полученные знания, написать бота связанного с парсером. Я решил создать отдельный класс (это скорее всего неправильный метод, но это уже относится к питону, а не к основной теме статьи), и в объекте этого класса хранить изменяемые данные.

Теория. Методы взаимодействия с ботом.

Также в дополнительных материалах будут ссылки на всё, что использовалось и о чём говорилось.

Маркапы. Добавляем клавиатуры для быстрого ответа.

Наконец основной код дописан. Теперь можно передохнуть и написать маркапы. Я думаю вы неоднократно видели их, но всё же, приложу скриншот. [SCREENSHOT]

Я выведу маркапы в отдельный файл — markups.py.

В написании маркапов нет ничего сложного. Нужно лишь создать маркап, указать пару параметров, создать пару кнопок и добавить их в маркап, далее просто указываем reply_markup=markup в send_message .

В параметры маркапа указываем ширину строки и изменение размеров кнопок, иначе они огромны.

Применим полученные знания к нашему боту.

Ура! С кодом впринципе разобрались. Теперь самое важное — деплоинг бота не хероку.

Деплоим бота на Heroku.

Для начала надо зарегистрироваться на Хероку и на Гитхабе.

Теперь создаём репозиторий на гитхабе. (нажмите плюсик слева от вашего аватара)
Сейчас нам нужен Procfile (Procfile.windows для windows). Создаём его и записываем в него bot: python3 bot.py

Теперь удаляем TOKEN из bot.py, здесь он не нужен, ведь мы будем загружать этот файл на гитхаб. Через тот же терминале, что использовали для запуска бота, заливаем файлы на гитхаб. (Предворительно удалите папку __pycache__).


Гит просит логин и пароль, спокойно вводим и преступаем к деплоингу бота на хероку. Пишем всё в том же терминале.

Теперь возвращаем TOKEN в bot.py, здесь он нужен, ведь мы будем загружать этот файл на хероку.


Чтобы выключить бота
И, не забываем перед залитием на гитхаб и удалить TOKEN из нашего bot.py. Ведь нам не нужно, чтобы кто-то им пользовался. Можно конечно воспользоваться .gitignore и вынести токены в отдельный фай.

Поздравляю!

Работа окончена, бот работает удалённо.

Ссылки

Заключение

Если кому-то было интересно, то цель написания статьи выполнена. Если кому-то хочется увидеть статью про более сложного бота (с вебхуками, подключенной БД с настройками пользователей и т.д.) — пишите.

Отобрал 10 лучших и сравнил все известные конструкторы Telegram ботов.

Я автор канала Кладезь Telegram. Три месяца занимался исследованием рынка конструкторов чат-ботов работающих с Telegram. Основными задачами были:

  1. Собрать базу зарубежных и СНГ конструкторов чат-ботов.
  2. Оценить поддержку уникальных функций для Telegram.
  3. Провести сравнение сервисов.

В список сервисов попали конструкторы из предыдущих обзоров, а также те, которые рекомендовали подписчики канала, оставили в комментариях к статьям и куда занесло активное гугление.

Список сервисов раздлён на категории:

  • Рабочий — функционирующий сервис.
  • Неизвестный — не удалось войти из-за ошибок или закрытого доступа (по всем признакам сервис функционирует) .
  • Заброшенный — без доступа и без обновлений.
  • Чёрный список — сервис, ограничевший доступ для пользователей или запятнавший репутацию.

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

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

  • Уровень входа — оценил сложность интерфейса, документации и в целом «понятность» всего, например популярные SaleBot и Botmother могут почти всё (если не всё) , но конструкторы обоих проектов выглядят запутано, а для использования их на 100% нужно разбираться в коде (прописывать запросы).
  • Конструктор картой — лучше названия не придумал. Критерий означает наличии возможности просматривать структуру бота, как карту мыслей, а-ля miro. В конструкторах без этой фичи сложно работать с большими проектами.
  • Тип конструктора —делится на подтипы:
  1. Универсальный — подходит под все задачи, пример: PuzzleBot, Watbot, SAMBOT.
  2. Магазин,Рассылка и Информационный — конструкторы с монофункциями, пример: Botobot, Телебиз, TextBack.
  3. Программируемый — сервисы, в которых без знания программирования не обойтись, но мороку упрощают, пример: QNext, botpress, Bots. Business.

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

Кратко представлю десятку лучших конструкторов:

🏆 Самый нативный конструктор — поддерживает наибольшее количество уникальных функций в Telegram.

Минимальный тариф: 690 ₽, есть бесплатный тариф.

Минимальный тариф: 990 ₽, есть бесплатный тариф и пробный период.

Минимальный тариф: 300 ₽, есть бесплатный тариф и пробный период.

🏆 Самый интегрированный конструктор — предоставляет наибольшее количество прямых интеграций с различными сервисами.

Минимальный тариф: 899 ₽, есть бесплатный тариф и пробный период.

Минимальный тариф: 15 $, есть бесплатный тариф и пробный период.

Минимальный тариф: 1000 ₽, нет бесплатного тарифа, но есть пробный период.

P. S. Пользователи в чате жалуются на нестабильность сервиса.

Минимальный тариф: 990 ₽, нет бесплатного тарифа, но есть пробный период.

Минимальный тариф: 2699 ₽, нет бесплатного тарифа, но есть пробный период.

Минимальный тариф: 1250 ₽, есть бесплатный тариф и пробный период.

Минимальный тариф: 1990 ₽, нет бесплатного тарифа, но есть пробный период.

Помимо лучшей десятки, хочу выделить конструктор ботов Fleep.бизнес, как сервис с самым выгодным, но ёмким тарифом — 199 ₽ и MenuBuilderBot, как самый часто обновляемый сервис. Оба конструктора не имеют веб-версии и настраиваются полностью в Telegram.

Какие ещё конструкторы рассмотрены в таблице:

  • Универсальный: slashstart, Robochat, Fleep. бизнес, Aimylogic, MenuBuilderBot, MyBotan, Квесча, SnatchBot, inqoob, Xenioo, Engati, BorisBot, Flow. ai, MCN Telecom, BotTap, Dialogflow, Pipe, FlowXO, Botkits, Client Hunter, BotoMat, Manybot, Unisender.
  • Магазин: Botobot, BotStore, Телебиз, JoinChat.
  • Рассылка: TextBack, Trengo, crisp.
  • Информационный: Telegrambot. biz.
  • Программируемый: Corezoid, botpress, QNext, MyMakerBot, Bots. Business.
  • Неизвестный: Telebot. biz, Proton-bot, InfoBot, telegr. store, Telebot. biz, appypie, Botsify, Bot-It, BotPenguin, Boteus.
  • Заброшенные: CrowdRobot, Inf. ai, SocialBot, Ebot. one.
  • Чёрный список: Leeloo, SendPulse, Smart Sender, ActiveChat, Bot4Shop.

Я видел некоторое… количество конструкторов и вот такая сводка:

  1. Количество конструкторов по группам: общие (универсальные, магазины, рассылка и информационные) — 42 штуки, программируемые — 5 штук, не удалось протестировать — 11 штук, заброшенных — 4 штуки и в чёрный список попали — 5 штук.
  2. Из 67 конструкторов, поддерживающих работу с Telegram, 47 созданы в странах СНГ и всего 20 зарубежом, из которых только 13 удалось протестировать, у 7 доступ по разным причинам оказался закрыт.
  3. 13 сервисов работают исключительно с Telegram: PuzzleBot, SAMBOT, Botmaker, Botobot, Fleep.бизнес, MenuBuilderBot, Телебиз, Client Hunter, Telegrambot.biz, Manybot, QNext, MyMakerBot, Bots.Business и из них только 1 зарубежный.
  4. Из группы "общие", в которой 42 конструктора, всего 18 имеют хотя бы одну нативную функцию.

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

Большое спасибо за прочтение! Надеюсь с таким материалом, вам будет намного проще подобрать сервис для создания чат-бота.

Если в чём-то ошибся или кого-то не добавил, то прошу написать сюда. Таблицу планирую обновлять и публиковать информацию об обновлениях в канал. По планам сделать такие же базы по остальным сервисам для Telegram: для работы с каналами, для работы с группами и различные сервисы аналитики.

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

Петр, спасибо за сводную таблицу!

Мы стартовали чуть менее года назад и уже радостно видеть значимые места в рейтингах. Особенно в тех функциях, которые посчитали важными для своих планов.

Из свежих работ у нас еще
1. Прямо сейчас финалим текстовую документаци, помимо видео инструкций.
2. Также недавно у нас появились не просто корзины, а мега магазины в новом функционале Телеграме:
https://vc.ru/tribuna/411653-sozdaem-internet-magazin-v-telegrame-kotoryy-zamenit-mobilnoe-prilozhenie
3. И в ближайших обновлениях "Интеграция с Google Sheets", чтобы она тоже была простой.

Развиваемся дальше и надеемся, что баллы, а значит и крутость сервиса и дальше будут расти.

Если по таблице принимаются пожелания, то я бы:

1. В раздел Интеграции добавил не только CRM системы.
Есть еще сервисы рассылок, смс, LMS, вебинаров, а также сервисы типа Make (он же Integromat ранее), Zapier и т.п. Нам технарям понятно, что можно многое сделать через "Исходящие запросы" и API, а другим, возможно, и нет. То есть популярными/востребованными бывают не только две наиболее известные CRM.

2. В колонке Обновления, где "-" (не нашли/не получили историю обновлений) получается баллов меньше, чем где "редко", хотя это может быть совсем не так.

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

4. В раздел "Поддержка" добавил бы еще "Услуги под ключ". Кому-то интересно "Сообщество", а кому-то заказать работу напрямую. У нас это еще и на 2 части разделить можно (под заказ почти все что угодно делаем для развития, а первичную настройку ботов бесплатно делаем при заказе тарифов).

А так все кажется супер для первой версии таблицы, всем видно, куда, возможно, нужно копать в направлении Телеграма :)

7 конструкторов для создания Телеграм-ботов

В одной из статей мы рассказали, что умеют делать чат-боты и с чего начать создание своего робота. В этой статье собрали 7 сервисов для самостоятельной сборки простых ботов, разобрались с их преимуществами, недостатками и стоимостью. После прочтения вы сможете подобрать подходящий вам инструмент.

Sambot

Конструктор ботов, заточенный специально под Telegram. Позволяет оперативно решать сложные задачи без программирования. На сайте собраны понятные 10-20 минутные мастер-классы, которые помогут быстро создать ботов для рассылок, воронок продаж, служб поддержки, онлайн-школ и так далее.

Возможности

  1. Создание бота за 30 минут.
  2. Более 20 коротких мастер-классов — смотри и делай!
  3. Бесплатная и простая интеграция с Google Sheets, Google Disk, ЮMoney, QIWI и Юkassa.
  4. Шаблоны настроек ботов.
  5. Совместная работа в команде.
  6. Обучающие трёхдневные курсы каждые 3 месяца.
  7. Реферальная программа: 30% от платежей рефералов, вывод за 3 дня без комиссии.

Стоимость

Оплачиваются только осуществленные действия бота — запросы. Есть бесплатные запросы для тестирования или пассивного использования ботов. Для полноценной работы можно купить лимитированные пакеты без «срока годности» (минимум 1 000 запросов за 100 рублей) или безлимитные (на месяц 500 рублей, а на год — всего 3 072 рублей). Причём запросами можно делиться между своими же ботами. Выгодно брать годовой безлимит и распределять его между своими несколькими ботами.

ПлюсыМинусы
Бесплатные запросы для тестированияНет визуального конструктора
Можно делиться запросами между ботамиРабота только с Telegram
Линейный интерфейс: что нужно сделать и при каких условиях
Гибкие настройки
Бесплатные интеграции с популярными сервисами
Мастер-классы и обучающий курс

Bot Kits

Онлайн-сервис умеет создавать ботов для разных социальных сетей и мессенджеров. Реализована поддержка «Вконтакте», «Одноклассников», Facebook, Viber и Telegram. Можно создать навык для Алисы от «Яндекса» и поручить ей обработку заявок или другие задачи.

Возможности

  1. Визуальный конструктор чат-ботов на основе блок-схем.
  2. Ручное управление ботом для переписки с клиентами в режиме реального времени.
  3. Готовые модули для сбора заявок и бронирования.
  4. Персонализированные рассылки пользователям.
  5. Подключение внешних сервисов.
  6. Настройка совместного доступа для командной работы.
  7. Сохранение данных в мини-CRM.
  8. История общения с пользователями.
  9. Онлайн-словарь для точного определения команд.

Стоимость

Плюсы Минусы
Техническая поддержкаДокументация закрывает не все вопросы новичков
Помощь в создании ботаСложно ориентироваться в меню
Статистика использования роботаНет мобильной версии
Быстрый интерфейс
Большое количество способов оплаты
Нет рекламы

BotTap

Онлайн-конструктор умеет создавать ботов для Вконтакте, Viber и Telegram. Ключевая особенность инструмента — возможность принимать онлайн-платежи.

Возможности

Стоимость

В сервисе два тарифа за 590 и 990 рублей в месяц. После регистрации даётся 7 дней на тестирование возможностей платной подписки.

Плюсы Минусы
Обучение для новичковЕсть реклама на бесплатном тарифе
Бонусы при оплате на длительный срокНет техподдержки в мессенджерах или онлайн-чате
Современный и быстрый интерфейс
Большое количество способов оплаты
Мобильная версия сервиса

Botmother

Одна из самых популярных платформ для создания чат-ботов. Работает с Вконтакте, Одноклассниками, Facebook, Viber, WhatsApp и Telegram.

Возможности

  1. Сборка чат-бота по блокам.
  2. Мониторинг работы бота в режиме реального времени.
  3. История общения с пользователями.
  4. Статистика работы бота.
  5. Группировка пользователей для рассылок.
  6. Приём платежей через агрегаторы.
  7. Интеграция с Zapier для автоматизации бизнес-процессов.
  8. Более 30 компонентов для создания действий.
  9. Миграция с сервиса.
  10. Командная работа.

Стоимость

В сервисе 3 платных тарифа, которые отличаются количеством активных ботов и доступными фишками. Самый дешёвый стоит 699 рублей за бота в месяц при оплате сразу за год, а самый дорогой — 1 999 за бота.

Плюсы Минусы
Возможность возврата денегПисьмо для подтверждения учётной записи приходит с задержкой
Поддержка в чатеБот для WhatsApp оплачивается отдельно
Нет рекламыНет мобильной версии
Оплата со счёта юрлица

Puzzlebot

Платформа создавалась специально под Telegram. В ней есть фишки, которых нет у конкурентов. У неё удобная мобильная версия, позволяющая создавать и управлять ботами со смартфона или планшета.

Возможности

  1. Визуальный конструктор ботов с готовыми компонентами.
  2. Редактирование отправленных постов.
  3. Настройка прав для подписчиков.
  4. Приём платежей в мессенджере.
  5. Отложенный постинг.
  6. Рассылки по фильтрам.
  7. Статистика эффективности бота.
  8. Уведомления в интерфейсе сервиса.
  9. Дублирование ботов.
  10. Командная работа.

Стоимость

Плюсы Минусы
Подробная база знанийРеклама на бесплатном тарифе
Мобильная версия сервисаПривязка стоимости тарифа к количеству подписчиков
Удобный и современный интерфейс
Гибкая настройка

Aimylogic

Сервис для создания текстовых чат-ботов и роботов, которые могут обзванивать подписчиков. Встроенные алгоритмы машинного обучения выделяют Aimylogic среди конкурентов. Чат-бота можно подключить к Вконтакте, Facebook, WhatsApp, Telegram, Алисе и Google Ассистенту.

Возможности

Стоимость

Плюсы Минусы
Обучение для новичковВизуальный редактор корректно работает только в Google Chrome
Техподдержка в чатеНет мобильной версии
Современный и удобный интерфейсОплата через Яндекс.Деньги или по договору

SendPulse

В популярном сервисе email-маркетинга есть инструменты для создания чат-ботов для Вконтакте, Facebook и Telegram. Подходит для создания простых роботов, которые могут собирать и обрабатывать данные.

Возможности

Стоимость

Цена платной подписки привязана к количеству подписчиков. К примеру, бот с 5 000 пользователей обойдётся в 2 790 рублей.

Плюсы Минусы
Круглосуточная поддержкаОграниченные возможности
Бесплатный тариф без рекламы и жёстких ограниченийНет чёткого механизма смены валюты в личном кабинете для пользователей сервиса
Удобный и современный интерфейс
Большой выбор способов оплаты
Мобильная версия сервиса

Chatforma

Конструктор чат-ботов с поддержкой Вконтакте, Facebook, WhatsApp, Viber и Telegram. В сервисе создано 48 тысяч ботов, общая аудитория составляет 1,3 млн пользователей.

Возможности

Стоимость

Плюсы Минусы
Оплата только за активных ботовИнтерфейс периодически зависает
Обучение для новичковНет мобильной версии
Подробная библиотека знаний
Техподдержка в чате

Итоговый рейтинг

Для удобства сравнили конструкторы по 5-ти критериям. Рейтинг составлен на основе впечатлений автора статьи после тестирования сервисов.

НазваниеИнтерфейсЮзабилитиВозможностиБесплатный тарифЦены
Sambot☆☆☆☆☆☆☆☆☆☆☆☆☆☆от 100 руб. / месяц
Bot Kits☆☆☆☆☆☆☆☆☆☆☆14 днейот 390 руб. / месяц
BotTap☆☆☆☆☆☆☆☆☆☆☆☆☆☆от 590 руб. / месяц
Botmother☆☆☆☆☆☆☆☆☆☆☆☆☆от 699 руб. / месяц
Puzzlebot☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆от 690 руб. / месяц
Aimylogic☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆14 днейот 5 900 руб. / месяц
Sendpulse☆☆☆☆☆☆☆☆☆☆☆от 720 руб. / месяц
Chatforma☆☆☆☆☆☆☆☆☆☆☆☆14 дней1 000 руб. / месяц

Конструкторы чат-ботов позволяют создавать простых роботов. Чат-боты могут принимать заявки, выдавать ответы на основе шаблонов, рассылать письма и обрабатывать платежи. Для создания бота со сложной логикой понадобится помощь опытного разработчика.

Идеальные варианты для сборки ботов: Puzzlebot и Botmother. В них есть все необходимые инструменты для создания робота в визуальных конструкторах. Aimylogic подходит для нестандартных задач. Это единственный сервис с машинным обучением из нашей подборки.

24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

Рассмотрим API на примере создания тривиального бота:

Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.

Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

2. Программирование

Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.


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

Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.


Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.

Собственно, её код довольно прост:

Теперь, когда вся логика бота описана можно начать придумывать ему команды.

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.

После этого можно добавить какую-нибудь свою команду, например, /base64:

Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:

command1 - Description
command2 - Another description
I:
whoisyourdaddy - Information about author
base64 - Base64 decode
BotFather: Success! Command list updated. /help

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

  • All messages that start with a slash ‘/’ (see Commands above)
  • Messages that mention the bot by username
  • Replies to the bot's own messages
  • Service messages (people added or removed from the group, etc.)

Для начала в Handler добавляем обработчик:


А потом в список команд добавляем псевдо-речь:


Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

Для примера расширим словарь RESPONSES:


И будем отлавливать текст :


Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:


И все, теперь бот будет время от времени присылать стикер вместо времени:


6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

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

7. Ограничения

К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

Например, если бот нужен срочно, а вы ещё не освоили Python.

Если вам показались сложными наши статьи о создании своего телеграм-бота и запуске его на сервере, то вот вам подборка конструкторов, где можно сделать почти то же самое.

В основе конструкторов лежит простой принцип: вы собираете из готовых кирпичиков то поведение, которое вам нужно. Если какого-то кирпичика нет, то варианта два: найти другой конструктор или придумать, как можно обойтись без него.

Manybot


Manybot — единственный сервис в нашей подборке, где нет визуального конструктора, а вся работа идёт через телеграм-чат. Сервис подойдёт тем, кому нужны простые и предсказуемые диалоги, выбор из небольшого числа вариантов и маленькое меню. Вряд ли он подойдёт для серьёзных проектов, потому что проще выучить Python, чем управлять сложным ботом через команды в чате.

Bottap

Стоимость: бесплатная версия с рекламой или 390 ₽ в месяц.


Мультиплатформенный конструктор помогает создать бота, который может работать одновременно в Телеграме, Вайбере и во ВКонтакте. В отличие от предыдущего сервиса, здесь есть блоки, которые можно перетягивать мышкой и настраивать связи между ними.

Botmother

Стоимость: бесплатно с ограничениями, но без рекламы, или 1249 ₽ в месяц.

Как сделать телеграм-бота без программирования

Хороший сервис для тех, кому нужно много функций и подробная документация. Это уже полноценный конструктор, где можно программировать сложную логику.

В сервисе есть встроенные шаблоны для типовых ситуаций и готовые боты, которые можно переделать под свои задачи. Ещё можно отследить каждый диалог с пользователем и вмешаться, если бот не справляется с общением.

PuzzleBot


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

Единственный минус — для работы с сервисом всё-таки нужно знать основы программирования: что такое переменная, вложенные условия и циклы. С другой стороны, если вы читаете «Код», то это для вас не проблема.

Amylogic

Стоимость: бесплатно, но с ограничениями по возможностям, или от 990 ₽ в месяц.

Это самый крутой по возможностям сервис, который мы тестировали. Если в PuzzleBot и Botmother мы могли делать почти всё, то здесь мы можем делать всё. Без шуток, здесь есть переменные, объекты как в ООП, функции и прочие программистские штуки.

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

Что дальше

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

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

Читайте также: