Чат-боты на все случаи жизни. 7 инструкций по созданию мини-приложений в Telegram

9feb4ffb3dc4942a48d8fee16dbc8dcb.png


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

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

Выберите интересующего вас бота:

→ Паттерны взаимодействия с ботами
→ Веб-приложение на Node.js и React
→ Платежная система с Payments
→ Карманный ChatGPT, которому можно отправлять голосовые сообщения
→ Бот для генерации сложных паролей
→ Бот для создания стикеров из сообщений
→ Бот для мониторинга погоды на Python

Паттерны взаимодействия с ботами


Вы можете усовершенствовать своего Telegram-бота, добавив паттерны взаимодействия с пользователями. Например, заменить командную строку на ключевое слово «Поехали!» или расположить под сообщением кнопку START. О том, как интегрировать эти паттерны в бот, подробно рассказываем в статье.

В процессе разработки мы использовали Python 3.9 и python-telegram-bot — фреймворк на основе обработчика. Ядро получает обновления (Update) от Telegram Bot API и вызывает соответствующий обработчик из списка зарегистрированных. Или игнорирует, если подходящего обработчика нет. В тексте вы найдете наглядную демонстрацию описанной работы.

Перейти к инструкции →

55669c8a1fd9796722050d42064817a2.png


Кнопки InlineKeyboard.

Что вы узнаете из текста?


  • Какие существуют способы взаимодействия с Telegram-ботом.
  • Какие нюансы стоит учитывать в работе с ботами.
  • Как создать обработчик аргументов команды /start или кодовых слов — например, «Поехали!».
  • Как создать кнопки ReplyKeyboard, заменяющие клавиатуру, и InlineKeyboard, располагающиеся под сообщением.


k5h7xuqzyygjvfyumceelhmk65q.png

Веб-приложение на Node.js и React


Год назад в Telegram Bot API добавили Web Apps — кастомные страницы, которые открываются внутри переписки с ботом. Сейчас эта функция востребована у большого количества пользователей — от создателей маленьких tg-ботов до коммерческих компаний.

Мы подготовили инструкцию по созданию такого веб-приложения. В ней — пошаговая разработка с JavaScript-кодом, который вы можете использовать в своем tg-боте. В качестве фронтенда использовали React, а для бэкенда — node.js. Готовое веб-приложение будет поддерживать авторизацию пользователя, встроенную оплату через платежные системы, кастомизацию под выбранную пользователем тему и многое другое.

Перейти к инструкции →

57fc9585bef74940260a3cb5ea5ac4f2.png


Форма обратной связи.

Что вы узнаете из текста?


  • Как сделать форму обратной связи.
  • Как добавить кнопку «купить» и корзину с товарами.
  • Как обработать полученные данные методом sendData.


Платежная система с Payments


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

В статье используем популярную библиотеку на Python — aiogram, предназначенную для создания ботов. И связываем ее с приложением через Telegram Bot API. Дополнительно вы можете выбрать платежную систему. Мессенджер поддерживает оплату более чем в 200 странах через такие шлюзы, как Stripe, YooMoney, Sberbank, LiqPay, PayMaster и другие.

Перейти к инструкции →

c35595ac894ce8603335824f82f79184.png


Что вы узнаете из текта?


  • Как сгенерировать invoice с деталями платежа.
  • Как подключить возможность оплаты в рублях и долларах.
  • Как настроить платежи с помощью аргумента Pre Checkout Query и Successful Payment.


Карманный ChatGPT, которому можно отправлять голосовые сообщения


Часто сервисы Open AI неудобно использовать на территории России. Приходится каждый раз подключать VPN и писать запросы вручную. Потратить несколько минут на формулировку и еще несколько — на набор текста. Теперь представьте: вы открываете tg-бот, записываете голосовое сообщение и получаете текстовый ответ из ChatGPT. В нашей инструкции рассказываем, как это сделать.

Для настройки рабочего окружения мы использовали Node.js и фреймворк Telegraf. После научили бота обрабатывать голосовые сообщения, получать на них ссылки в формате ogg и преобразовывать в текст. А чтобы бот всегда был на связи, задеплоили его на облачный сервер.

Перейти к инструкции →

8624ca762539ba60a5d91f6ec8623308.png


Что вы узнаете из текста?


  • Как научить бота фильтровать голосовые сообщения и получать на них ссылки в формате ogg.
  • Как обрабатывать и конвертировать полученные данные из getFileLink в mp3.
  • Как сохранять сообщения и их контексты для каждого пользователя.


Бот для генерации сложных паролей


Чтобы придумать надежный, но запоминающийся пароль, можно взять несколько слов и объединить их в последовательность, а после — добавить специальные символы. А можно пойти другим путем. Написать Telegram-бота, который будет генерировать пароли прямо в мессенджере.

Для создания такого бота мы использовали сразу несколько инструментов. Среди них — PyCharm, aiogram и Redis. Далее настроили параметры конфигурации из готового репозитория на GitHub. По умолчанию вы можете выбрать любой из трех пресетов для генерации пароля. Если в какой-то момент их станет недостаточно, вы всегда можете добавить новые или изменить существующие в XKCD-password-generator.

Перейти к инструкции →

8f322196ecd169a65f0ce7610fa62c6a.png


Что вы узнаете из текста?


  • Как создать новую конфигурацию бота.
  • Как изменить готовые пресеты в XKCD.
  • Как сделать бота, если у вас не PyCharm.


Бот для создания стикеров из сообщений


Было ли у вас такое, что какое-то сообщение друга в Telegram хотелось отправлять впоследствии в виде стикера? С этой инструкции вы можете создать с друзьями или коллегами свой личный «фонд золотых цитат». Концепт идеи прост: пользователь пересылает сообщение в диалог с ботом и получает готовый стикер. Без лишних действий и стороннего софта.

Для разработки мы выбрали Python версии 3.8. Нарисовали шаблон стикера с помощью библиотеки Pillow и продумали уникальные имена для набора. С последним оказалось не все так просто. Если использовать имя бота в уникальном имени набора, то любой может получить к нему доступ. Поэтому в качестве уникального имени выбрали скрытый UUID в Telegram.

Перейти к инструкции →

72236ca353876eedc00e40a6d02acab3.png


Что вы узнаете из текста?


  • Как исправить «особенность» с уникальным именем набора.
  • Какие ограничение мессенджер накладывает на стикеры.
  • Как разработать бота без БД и промежуточных файлов.


Бот для мониторинга погоды на Python


Классика бот-разработки! Задача отлично подойдет для знакомства с Telegram-ботами и первого пет-проекта. В результате получите карманного синоптика, который будет отправлять вам данные о погоде в любом городе.

В статье детально рассмотрим работу с API с помощью токенов для OpenWeather и Telegram-бота. Приступим к парсингу ответов в формате JSON: заберем данные о городе и температуре, влажности, давлении и скорости ветра. А после — задеплоим на облачный сервер. И все это на асинхронной библиотеке aiogram.

Перейти к инструкции →

4805788f49fecbea6b1d57f922e1a6bc.png


Что вы узнаете из текста?


  • Как добавить разные эмодзи в зависимости от погоды.
  • Какие форматы данных поддерживает «карманный синоптик».
  • Как научить бота обрабатывать города через API и возвращать данные о погоде.


Какой бот вам показался наиболее полезным? Или, может, вы хотите новый текст про бота с определенной функциональностью? Пишите в комментариях!

© Habrahabr.ru