Идея Как создать веб-приложение для Telegram

ProgreSS

Модератор
VIP
Проверенный продавец
Продавец
Подтвержденный
Регистрация
23.11.15
Сообщения
368
Реакции
226
Депозит
0
Покупок
0
Продаж
12
Всем привет, сразу следует сказать, что статья написана не мной, но изучив ее я решил, что она действительно может помочь многим взглянуть по новому на старые вещи, улучшив тем самым свои бизнес-процессы. Как говориться все гениальное - просто)
Далее все от автора статьи:

Телеграм-боты — классная штука, но с ними есть одна проблема: ими неудобно пользоваться.
Ботов на сегодняшний день наплодили много, но для большинства людей они остаются какой-то непонятной и запутанной штукой с невнятным управлением: введите 1, наберите команду /superpuper+parameter и т.д.
Такое впечатление, что работаешь с с командной строкой. Inline-кнопки не сильно помогают, а только создают хаос в чате. Понятно, почему бум ботов существенно поутих.
В целом не совсем ясны сценарии применения ботов в их нынешнем виде, а также их преимущества перед другими, более привычными, решениями. Зачем заказывать суши через бота, когда это удобнее и быстрее сделать на сайте? Зачем искать ближайший банкомат в боте, если проще это сделать в гугл картах? Зачем искать перевод слова в боте, если можно поставить на телефон нормальное приложение?
В том, что я напишу дальше, нет никакого ноу-хау. Наверняка кто-то что-то подобное делал и успешно применял. Я просто описываю свой собственный инсайт о том, как превратить ботов в нечто более полезное, в надежде на то, что это будет тоже кому-то интересно.
Простая мысль. А что если бот не будет делать ничего, а только давать ссылку на веб-приложение? Веб-приложение получит идентификатор сессии бота (chat.id) и далее будет использовать этот идентификатор в качестве ключа для хранения профиля пользователя.
Поскольку интернет-страницы в Telegram открываются во встроенном браузере, в отличие, например, от WhatsApp, то работа пользователя в таком веб-приложении органически включается в непрерывный транзакционный цикл: початился с коллегами, позвонил маме, почитал каналы, поработал с веб-приложением.
Кроме того, сервер веб-приложения получает возможность отправлять пользователю пуш-уведомления в бот. И это одно из самых важных преимуществ этого симбиоза.
Возможно, все это звучит несколько запутано. Поэтому я разработал бота+веб-приложение (далее — БВП), чтобы продемонстрировать идею.
БВП The Lark – это небольшой тренажер для прокачки английского в игровой форме (не для начинающих, минимум для уровня B1). Вы можете установить его по ссылке
https://t.me/lark_en_bot


У бота есть только две кнопки: Open и Reset.
Кнопка Open отправляет пользователю ссылку, которая при нажатии открывает веб-приложение во встроенном браузере. Когда пользователь поиграет в приложении, а затем закроет его, то оно запомнит достижения пользователя по chat.id. И в следующий раз, когда пользователь снова решит поиграть, веб-приложение стартует точно с того места, где в прошлый раз остановился пользователь.
Кнопка Reset сбрасывает достижения пользователя.
Вся система состоит из следующих компонентов:
  • Телеграм-бот (примерно 100 строк кода)
  • Обычное React-приложение, которое запускается из бота с идентификатором chat.id
  • База данных – таблица в Airtable, куда записываются достижения для каждого chat.id
  • Сервер веб-приложения, обслуживающий post/get запросы (примерно 200 строк кода).
Сервер, бот и веб-приложение – все написано на JS плюс пара строк на PHP.
Попробуйте и почувствуйте, как веб-приложение бесшовно встраивается в транзакционный цикл пользователя.
Симбиоз БВП позволяет получить в одном флаконе мощную связку веб-технологий и платформы Telegram.
Думаю, что такой подход открывает большие возможности для создания полезных внутри-корпоративных приложений для автоматизации процессов, для которых бессмысленно или дорого делать полноценное Enterprise-приложение.
Например, можно сделать БВП для складского учета: работники склада (или целой сети складов) ставят бота и через веб-приложение печатают и сканируют штрих-коды, отпускают и получают товар. Боту сервер при необходимости шлет всякие пуши (например, о новых заказах). Естественно, надо предусмотреть какую-то защиту, чтобы этим БВП могли пользоваться только сотрудники компании. Есть куча способов для любого уровня паранойи, не буду их тут описывать.
БВП The Lark в демонстрационных целях имеет самую примитивную защиту, так как бот генерирует ссылку всякий раз с новым рандомным токеном. Хотя для этого бота и такая защита является излишней.
Курьерская доставка, обслуживание в общепите, образовательные проекты – во всех этих сферах можно применять БВП. Если к веб-приложению прикрутить еще какой-нибудь сервис типа PubNub, то вся распределенная сеть БВП может начать работать в режиме реального времени на веб-сокетах. Конечно, если стоит такая бизнес-задача.
Отдельно хотелось бы отметить, что такие БВП можно создавать для мероприятий: выставок, конференций, симпозиумов, и, извините за мой французский, митапов и хакатонов. Во время мероприятия БВП может оказывать персонализированную информационную поддержку каждому участнику. А после завершения мероприятия БВП не жалко просто выкинуть.
Не жалко, потому что БВП – это супердешевый и супербыстрый способ автоматизации бизнес-процессов. Что может быть на сегодняшний день быстрее и дешевле разработки шаблонного кода на JS? Фактически мы получаем почти полноценное кроссплатформенное мобильное приложение с дружественным интерфейсом, базой данных, красивостями и пуш-уведомлениями за короткий срок и смешные деньги.
Однако при этом нельзя сказать, что БВП подходят только для костыльных решений, и ничего серьезного на их основе не построишь.
Напомню, что платформа Telegram является очень надежной в техническом плане, и на сегодняшний день обслуживает более 500 миллионов активных пользователей. А мощность и надежность вашего веб-приложения зависит только от вас и вашего сервера.
Главный недостаток данного подхода состоит в том, что веб – это все-таки веб. И если бизнес-задача требует использовать функции, которые предоставляются не браузером, а операционной системой смартфона (например, нужна работа с файловой системой), то необходимо писать полноценное мобильное приложение. Тут уже в дело вступают Swift, Java, Kotlin. А это совсем другие сроки и совсем другие деньги.
Конечно, кто-то сейчас обязательно скажет: «Нечего изобретать велосипед, берете React Native и легко пишете мобильное приложение на JS». Сами пробовали? Легко? Если бы все было бы так просто, то разработка мобильных приложений не стоила бы так дорого. Разработчик на React Native стоит не сильно дешевле, чем разработчик на Swift. Потому что делать настоящее мобильное приложение – это не столько про язык, сколько про платформу.
В заключение хотелось бы сказать еще пару слов об идеологии. Как бы ни было соблазнительно поиграть с кодом бота и наклепать его побольше, весь значимый функционал и вся бизнес-логика должны по максимуму находиться в веб-приложении. Чем меньше в связке БВП вы будете использовать возможности Telegram Bot API, тем лучше. Сам бот должен быть максимально простым и тупым.
По большому счету от бота нам нужны только две вещи:
  • чтобы он давал ссылку на веб-приложение с прикрепленным chat.id
  • принимал пуш-уведомления (а он это делает по умолчанию).
С этой точки зрения, в моем боте даже кнопка Reset лишняя, просто она осталась с того времени, как тестировался API сервера веб-приложения.
 
Сверху Снизу