Telegram-боты — хорошая возможность вписать какую-то важную функциональность в понятную и простую платформу мессенджера. Не нужно думать об отдельном сайте и интерфейсе. Также боты — хорошая возможность для новичков в разработке реализовать свой мини-проект. Идея может быть как совершенно фановая — например, создавать стикеры из мемных сообщений друзей, так и быть частью функциональности сервиса — например, платежной системы.
В подборке под катом — семь инструкций по созданию Telegram-ботов с разной функциональностью. Сохраняйте статью в закладки: пригодится как начинающим, так и опытным разработчикам.
Выберите интересующего вас бота:
→ Паттерны взаимодействия с ботами
→ Веб-приложение на Node.js и React
→ Платежная система с Payments
→ Карманный ChatGPT, которому можно отправлять голосовые сообщения
→ Бот для генерации сложных паролей
→ Бот для создания стикеров из сообщений
→ Бот для мониторинга погоды на Python
Паттерны взаимодействия с ботами
Вы можете усовершенствовать своего Telegram-бота, добавив паттерны взаимодействия с пользователями. Например, заменить командную строку на ключевое слово «Поехали!» или расположить под сообщением кнопку START. О том, как интегрировать эти паттерны в бот, подробно рассказываем в статье.
В процессе разработки мы использовали Python 3.9 и python-telegram-bot — фреймворк на основе обработчика. Ядро получает обновления (Update) от Telegram Bot API и вызывает соответствующий обработчик из списка зарегистрированных. Или игнорирует, если подходящего обработчика нет. В тексте вы найдете наглядную демонстрацию описанной работы.
Кнопки InlineKeyboard.
Что вы узнаете из текста?
- Какие существуют способы взаимодействия с Telegram-ботом.
- Какие нюансы стоит учитывать в работе с ботами.
- Как создать обработчик аргументов команды /start или кодовых слов — например, «Поехали!».
- Как создать кнопки ReplyKeyboard, заменяющие клавиатуру, и InlineKeyboard, располагающиеся под сообщением.
Веб-приложение на Node.js и React
Год назад в Telegram Bot API добавили Web Apps — кастомные страницы, которые открываются внутри переписки с ботом. Сейчас эта функция востребована у большого количества пользователей — от создателей маленьких tg-ботов до коммерческих компаний.
Мы подготовили инструкцию по созданию такого веб-приложения. В ней — пошаговая разработка с JavaScript-кодом, который вы можете использовать в своем tg-боте. В качестве фронтенда использовали React, а для бэкенда — node.js. Готовое веб-приложение будет поддерживать авторизацию пользователя, встроенную оплату через платежные системы, кастомизацию под выбранную пользователем тему и многое другое.
Форма обратной связи.
Что вы узнаете из текста?
- Как сделать форму обратной связи.
- Как добавить кнопку «купить» и корзину с товарами.
- Как обработать полученные данные методом sendData.
Платежная система с Payments
Для оплаты вашего продукта не обязательно создавать сайт или делать отдельную страничку с встроенным блоком для платежей. Все это можно реализовать сразу в Telegram. Достаточно подключить возможность ежемесячной подписки.
В статье используем популярную библиотеку на Python — aiogram, предназначенную для создания ботов. И связываем ее с приложением через Telegram Bot API. Дополнительно вы можете выбрать платежную систему. Мессенджер поддерживает оплату более чем в 200 странах через такие шлюзы, как Stripe, YooMoney, Sberbank, LiqPay, PayMaster и другие.
Что вы узнаете из текта?
- Как сгенерировать invoice с деталями платежа.
- Как подключить возможность оплаты в рублях и долларах.
- Как настроить платежи с помощью аргумента Pre Checkout Query и Successful Payment.
Карманный ChatGPT, которому можно отправлять голосовые сообщения
Часто сервисы Open AI неудобно использовать на территории России. Приходится каждый раз подключать VPN и писать запросы вручную. Потратить несколько минут на формулировку и еще несколько — на набор текста. Теперь представьте: вы открываете tg-бот, записываете голосовое сообщение и получаете текстовый ответ из ChatGPT. В нашей инструкции рассказываем, как это сделать.
Для настройки рабочего окружения мы использовали Node.js и фреймворк Telegraf. После научили бота обрабатывать голосовые сообщения, получать на них ссылки в формате ogg и преобразовывать в текст. А чтобы бот всегда был на связи, задеплоили его на облачный сервер.
Что вы узнаете из текста?
- Как научить бота фильтровать голосовые сообщения и получать на них ссылки в формате ogg.
- Как обрабатывать и конвертировать полученные данные из getFileLink в mp3.
- Как сохранять сообщения и их контексты для каждого пользователя.
Бот для генерации сложных паролей
Чтобы придумать надежный, но запоминающийся пароль, можно взять несколько слов и объединить их в последовательность, а после — добавить специальные символы. А можно пойти другим путем. Написать Telegram-бота, который будет генерировать пароли прямо в мессенджере.
Для создания такого бота мы использовали сразу несколько инструментов. Среди них — PyCharm, aiogram и Redis. Далее настроили параметры конфигурации из готового репозитория на GitHub. По умолчанию вы можете выбрать любой из трех пресетов для генерации пароля. Если в какой-то момент их станет недостаточно, вы всегда можете добавить новые или изменить существующие в XKCD-password-generator.
Что вы узнаете из текста?
- Как создать новую конфигурацию бота.
- Как изменить готовые пресеты в XKCD.
- Как сделать бота, если у вас не PyCharm.
Бот для создания стикеров из сообщений
Было ли у вас такое, что какое-то сообщение друга в Telegram хотелось отправлять впоследствии в виде стикера? С этой инструкции вы можете создать с друзьями или коллегами свой личный «фонд золотых цитат». Концепт идеи прост: пользователь пересылает сообщение в диалог с ботом и получает готовый стикер. Без лишних действий и стороннего софта.
Для разработки мы выбрали Python версии 3.8. Нарисовали шаблон стикера с помощью библиотеки Pillow и продумали уникальные имена для набора. С последним оказалось не все так просто. Если использовать имя бота в уникальном имени набора, то любой может получить к нему доступ. Поэтому в качестве уникального имени выбрали скрытый UUID в Telegram.
Что вы узнаете из текста?
- Как исправить «особенность» с уникальным именем набора.
- Какие ограничение мессенджер накладывает на стикеры.
- Как разработать бота без БД и промежуточных файлов.
Бот для мониторинга погоды на Python
Классика бот-разработки! Задача отлично подойдет для знакомства с Telegram-ботами и первого пет-проекта. В результате получите карманного синоптика, который будет отправлять вам данные о погоде в любом городе.
В статье детально рассмотрим работу с API с помощью токенов для OpenWeather и Telegram-бота. Приступим к парсингу ответов в формате JSON: заберем данные о городе и температуре, влажности, давлении и скорости ветра. А после — задеплоим на облачный сервер. И все это на асинхронной библиотеке aiogram.
Автор: Анастасия Ербанова