
Сегодня из пустых пивных банок и старых покрышек мы соберём телеграм-бота для такси. С его помощью можно будет вызывать такси нажатием всего лишь двух кнопок. Вернее так: при первом использовании потребуется нажать три кнопки, а затем всегда — только две. Код написан на Node.js (т.е. ECMAScript, aka JavaScript), без использование каких-либо бот-фреймворков или бот-библиотек — только натуральный продукт — Telegram Bot API. Количество кода указано в названии статьи, выполняется он в Яндекс.Облаке, а точнее в Cloud Functions, а состояния и данные хранятся в Firebase, вернее в Cloud Firestore. Ну а заявки на такси наш скромный бот отправляет в CRM Битрикс24. Как видите — задействованы все! На самого бота можно посмотреть на комиксах ниже, а кликнув по картинке-ссылке под комиксами — открыть и проверить в деле.
Что из себя представляет этот бот

Комикс #1: Открываем и запускаем бота.

Комикс #2: Да, придётся дать номер телефона. Более того, бот запишет его в БД, чтобы не спрашивать каждый раз.

Комикс #3: Передаём боту свои координаты. Но их бот сохранять не будет, вполне обоснованно полагая, что вы можете слегка перемещаться.

Комикс #4: Получаем подтверждение заказа. А наш умный бот пресекает попытку флуда.

Комикс #5: А тем временем заказ поступает в CRM Битрикс24.

Комикс #6: Диспетчер службы такси видит все необходимые данные, и может звонить своему потенциальному клиенту.
Желаете попробовать? Пожалуйста — кликните по картинке ниже. И не волнуйтесь — ваш номер телефона торговаться на «Горбушке» (и где-либо ещё) не будет.

Ссылка на бот: https://t.me/InstantTaxiBot
Как сделать
О том как создавать Telegram-ботов да ещё и в Яндекс.Облаке — читайте в туториале Строим Telegram-бот в Яндекс.Облаке.

Код бота в Яндекс.Облаке.
О том как подключить код из Yandex Cloud Functions к базе данных Firebase Cloud Firestore — читайте в туториале Алиса помнит всё.

Данные бота в Cloud Firestore.
О том как передавать данные в CRM Битрикс24 — читайте в туториале Алиса в стране Битрикс.
Сам код должен быть вполне понятен, к тому же он весьма щедро прокомментирован. Просто читайте его, как архивариусы читают манускрипты.

Ссылка на GitHab: https://github.com/stmike/tg-bot-taxi.git
git clone https://github.com/stmike/tg-bot-taxi.git
cd tg-bot-taxi
npm install
Есть, конечно, о чём подумать для улучшения юзабилити (прости, господи), а также, в случае изготовления бота для юридического лица в РФ, нельзя забывать и о славно-известном законе (ни то Яровой, ни то Озимой) — ФЗ 152. Дополнительно можно подумать и об использовании этого кода не только для вызова такси, но и для доставки пончиков или перевода бабушек через проезжую часть. Везде, где нам необходимо знать местоположение пользователя и его контакты — это можно легко адаптировать.
Заключение
На сегодня всё. Другие материалы следуют. Кому подобное читать интересно — подписывайтесь на уведомления о новых публикациях. Подписаться можно на этом сайте (кнопка Подписаться внизу), или на Telegram-канал IT Туториал Захар, или на одноимённое сообщество в VK, или Twitter @mikezaharov.