Как написать чат бота для telegram новичку
Перейти к содержимому

Как написать чат бота для telegram новичку

  • автор:

Как быстро создать Telegram-бота в 2022-м году — инструкция для новичков

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

Софт

Бот в телеграм — штука полезная, а главное доступная. Их создают для различных целей, но новичкам чаще всего нужны следующие:

  • Бот службы-поддержки.
  • Отложенный постинг и оформление постов на каналах.
  • Фидбек-боты (дабы не забивать ленту чатами с клиентами).

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

Создаем токен в BotFather

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

Как получить токен:

  • Переходим сюда
  • Нажимаем “Запустить” и в полученном сообщении выбираем “/newbot”.

После чего тебе нужно ввести имя бота (1) и username (2), которые будут отображаться здесь:

Создаем токен в BotFather

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

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

Как кастомизировать бота

Чтобы изменить бота нажми на [/], далее ткни на /mybots и в появившемся меню выбери своего бота. После чего выпадет ещё одно меню, тут нам нужна кнопка Edit Bot, которая откроет следующие функции:

  • Edit Name — изменить имя бота (не путать с username)
  • Edit About — добавить описание бота, которое будет отображаться в разделе с аватаркой и в ссылке на бота.
  • Edit Commands — сюда можно добавить команды, но здесь уже понадобятся навыки программирования.
  • Edit Description — добавить описание, которое будет показываться сразу после открытия бота.
  • Edit Botpic — установить аватарку на бота.

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

№1. Создаем бота обратной связи

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

Создаются они достаточно быстро:

  • Переходим в Livegram.
  • Тыкаем на кнопку /addbot.
  • Копируем наш токен бота из BotFather и пересылаем в Livegram.
  • Готово.

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

№2. Делаем бота для выкладки и оформления постов

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

Инструкция по созданию бота:

  • Переходим в Controller Bot.
  • Нажимаем кнопку /addchannel чтобы добавить канал.
  • Пересылаем токен бота для подключения его к системе.
  • Добавляем своего бота в администраторы канала через username.
  • Пересылаем любое сообщение из канала.
  • Вуаля. Готово.

Теперь твоему боту доступны все функции Controller Bot.

№3. Создаем бота техподдержку с искусственным интеллектом

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

Инструкция:

Переходим на сайт платформы Dialog Flow, регистрируемся и тыкаем на кнопку “+ Create Agent”.

Создаем агент на DialogFlow

В это поле вводим имя агента, а в разделе Default Language указываем русский дабы бот мог его понимать и общаться на нем.

Заполняем все поля при создании

Жмякаем на кнопку Create и переходим в раздел Integrations, пролистываем вниз и находим Telegram.

Переходим в раздел Integrations

Нажимаем на кнопку и добавляем токен бота из BotFather в специальное поле. После чего нажимаем кнопку Start.

Добавляем токен бота из BotFather

Теперь переходим в раздел Intents, нажимаем на синюю кнопку Create Intent и добавляем Training Phrases (фразы, которые будут заставлять бота пересылать те или иные ответы) и Responses (те самые ответы на Training Phrases).

Если объяснять совсем просто, то в раздел с Training Phrases нужно добавить возможные вопросы пользователей, а в раздел с Responses — ответы на них. Под каждую проблему пользователя нужно создавать отдельный Intent.

Создаем отдельный intent под каждый вопрос пользователя

Советую подробно изучить документацию чтобы использовать все преимущества платформы Dialog Flow и создавать функциональных ботов.

Итоги

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

Если тебе понравилась статья, то не забудь отправить её другу, пусть и у него будет свой бот.

Питоном по телеграму! Пишем пять простых Telegram-ботов на Python

Ес­ли ты сов­сем не ори­енти­руешь­ся в Python, то отличным началом будет проч­тение трех ввод­ных ста­тей, которые я пуб­ликовал в «Хакере» этим летом, либо посеще­ние кур­са «Python для нович­ков», который я нач­ну вес­ти для читате­лей «Хакера» уже сов­сем ско­ро — 30 нояб­ря.

  • Python с абсо­лют­ного нуля. Учим­ся кодить без скуч­ных кни­жек
  • Python с абсо­лют­ного нуля. Учим­ся работать со стро­ками, фай­лами и интерне­том
  • Python с абсо­лют­ного нуля. Работа­ем с ОС, изу­чаем регуляр­ные выраже­ния и фун­кции

Что­бы соз­дать бота, нам нуж­но дать ему наз­вание, адрес и получить токен — стро­ку, которая будет однознач­но иден­тифици­ровать нашего бота для сер­веров Telegram. Зай­дем в Telegram под сво­им акка­унтом и откро­ем «отца всех ботов», BotFather.

Жмем кноп­ку «Запус­тить» (или отпра­вим / start ), в ответ BotFather приш­лет нам спи­сок дос­тупных команд:

  • / newbot — соз­дать нового бота;
  • / mybots — редак­тировать ваших ботов;
  • / setname — сме­нить имя бота;
  • / setdescription — изме­нить опи­сание бота;
  • / setabouttext — изме­нить информа­цию о боте;
  • / setuserpic — изме­нить фото ава­тар­ки бота;
  • / setcommands — изме­нить спи­сок команд бота;
  • / deletebot — уда­лить бота.

От­пра­вим бате‑боту коман­ду / newbot , что­бы соз­дать нового бота. В ответ он поп­росит ввес­ти имя будуще­го бота, его мож­но писать на рус­ском. Пос­ле вво­да име­ни нуж­но будет отпра­вить адрес бота, при­чем он дол­жен закан­чивать­ся на сло­во bot. Нап­ример, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather нач­нет изви­нять­ся и про­сить при­думать что‑нибудь дру­гое.

Ког­да мы наконец най­дем сво­бод­ный и кра­сивый адрес для нашего бота, в ответ получим сооб­щение, в котором пос­ле фра­зы Use this token to access the HTTP API будет написа­на стро­ка из букв и цифр — это и есть необ­ходимый нам токен. Сох­раним ее где‑нибудь на сво­ем компь­юте­ре, что­бы потом исполь­зовать в скрип­те бота.

Для вза­имо­дей­ствия с Telegram API есть нес­коль­ко готовых модулей. Самый прос­той из них — Telebot. Что­бы уста­новить его, набери

В Linux, воз­можно, понадо­бит­ся написать pip3 вмес­то pip , что­бы ука­зать, что мы хотим работать с треть­ей вер­сией Python.

Эхо-бот

Для начала реали­зуем так называ­емо­го эхо‑бота. Он будет получать от поль­зовате­ля тек­сто­вое сооб­щение и воз­вра­щать его.

Telegram-бот на Python за полчаса с aiogram

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

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

Настройка

Откройте Telegram, найдите @BotFather и начните беседу. Отправьте команду /newbot и следуйте инструкциям. Вы получите:

  • свой токен;
  • адрес Telegram API (https://api.telegram.org/bot);
  • ссылку на документацию.

Обязательно сохраните токен, так как это ключ для взаимодействия с ботом.

Примечание Хранение токена должно быть локальным: ни в коем случае не выгружайте его в общий доступ, например в GitHub-репозиторий .

Далее начните беседу. Введите в поисковой строке имя бота и нажмите /start . Отправьте любое сообщение: оно станет первым обновлением, которое получит Телеграм бот.

Установка Python

Для написания Telegram-бота на Python, нужно установить сам язык. Если вы пользуетесь Windows, скачать Python можно с официального сайта. Версия важна. Нам подойдет Python не ниже версии 3.7. Если же у вас Linux или macOS, то, скорее всего, у вас стоит Python 3.6. Как обновиться, можете почитать здесь.

Тем, кто только начал изучение этого языка, будет также полезна дорожная карта Python-разработчика.

Установка pip

Это менеджер пакетов. В версиях выше Python 2.7.9 и Python 3.4, а также на macOS/Linux он уже есть. Проверить это можно командой pip —version в терминале. Если же по каким-то причинам он отсутствует, установить его можно при помощи команды:

Установка aiogram

Установить данный фреймворк для Telegram Bot API с помощью pip:

Hello, bot!

Давайте напишем простенькую программу приветствия. Для начала следует импортировать библиотеки и создать экземпляры Телеграм бота и диспетчера:

Теперь напишем обработчик текстовых сообщений, который будет обрабатывать входящие команды /start и /help :

Добавим ещё один обработчик для получения текстовых сообщений. Если бот получит «Привет», он также поздоровается. Все остальные сообщения будут определены, как нераспознанные:

Запускаем Telegram бота, написанного на Python, следующим образом:

Примечание Так мы задаём боту непрерывное отслеживание новых сообщений. Если бот упадёт, а сообщения продолжат поступать, они будут накапливаться в течение 24 часов на серверах Telegram, и в случае восстановления бота прилетят ему все сразу.

Видеокурс «Как стать тестировщиком»

Ну вот и всё, простенький бот в Телеграмме на языке Python готов.

Docker

Сейчас мало кто не слышал про Docker, но если вдруг не слышали — вот хорошая статья. Для нашего проекта потребуется самый простой Dockerfile:

Каталог проекта должны при этом содержать следующие файлы:

  • bot.py;
  • Dockerfile.

Для локальных тестов достаточно установить Docker (linux, mac, windows), после чего в папке проекта собрать и запустить контейнер с помощью команд:

my_app — это просто название нашего контейнера, вместо которого можно использовать другое имя.

-d — специальный флаг, который запускает контейнер в фоне и позволяет дальше работать в терминале. Это называется detached mode.

Деплой на AWS

Прежде всего нам понадобится аккаунт на Docker Hub. Это аналог GitHub, только не с исходниками кода, а с уже созданными контейнерами. Работа с Docker Hub выглядит достаточно просто:

  1. Локально или с помощью пайплайнов собрали контейнер.
  2. Загрузили его на докер хаб.
  3. В любом удобном месте скачали его. Это может быть локальная машина, VPS сервер или облачный провайдер по типу AWS.
  4. Запустили.

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

Загружаем его на докерхаб:

Для проверки успешности загрузки можете запустить контейнер из Docker Hub с помощью команды:

Далее загрузим наш контейнер в AWS Elastic Beanstalk. Для этого потребуется аккаунт на AWS. Если его нет, необходимо зарегистрироваться. Вас попросят ввести данные карты для верификации, но переживать не стоит, ведь мы воспользуемся бесплатным годовым триалом. Чтобы поиграться, этого более чем достаточно, а вот если вы захотите вывести проект в продакшен, следует перейти на VPS — это даст больше контроля и гибкости.

  • Переходим в Elastic Beanstalk, на вкладку Applications, и создаём новое приложение:

Elastic Beanstalk вкладка Applications

  • Называем приложение, теги оставляем пустыми:

Называем приложение в Elastic Beanstalk

  • Создаём для приложения environment:

environment для будущего Telegram-бота

  • Выбираем Worker environment:

Worker environment для будущего Telegram-бота

  • В качестве платформы выбираем Docker:

Docker для Telegram-бота на Python

  • В пункте Application code нужно загрузить JSON-файл с конфигурацией Docker-образа. Сам файл:

Application code

  • Создаём окружение:

Создаём окружение

  • AWS начинает создавать окружение, просто ждём завершения процесса:

AWS начинает создавать окружение

  • Если всё прошло успешно, вы увидите индикатор успешного запуска приложения:

Docker для Телеграм бота

Проверяем работу нашего Telegram bot:

Проверка Телеграм бота

Заключение

Поздравляем! Теперь вы знаете, как писать роботов для Telegram на Python.

Бота можно дополнять другими функциями, например, добавить отправку файлов, опрос или клавиатуру.

Кстати, в телеграмме есть аж целых два типа клавиатур:

  1. Классическая RelpyKeyboardMarkup, у которой кнопки располагаются под полем ввода сообщения:
    RelpyKeyboardMarkup
  2. Более современная InlineKeyboardMarkup, которая привязывается к конкретному сообщению:
    InlineKeyboardMarkup

Но и это полностью рабочий Телеграм-бот на Python: дополните словарём, и получите полноценную беседу. Также можете опробовать функциональность нашего Telegram-бота.

В «настоящих проектах» не обойтись без базы данных. Тут на помощь приходит docker-compose, который позволяет объединить несколько контейнеров в один сервис. Таким образом, например, можно создать приложение и положить его в контейнер, а базу данных, как отдельный сервис, поместить в другой контейнер, и с помощью docker-compose наладить между ними связь.

Также для более серьёзной разработки лучше использовать выделенный виртуальный сервер (VPS): он даёт гораздо больше гибкости и свободы, чем тот же AWS. А самое главное, он более приближён к «боевой» разработке. Схема работы тут будет даже проще, чем с AWS: вам просто нужно установить Docker, спуллить образ с Docker Hub и запустить его.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *