Личный телеграм-бот за 30 минут

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

💡Идея

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

🛠 Технологии

Первая идея — по-старинке написать бекенд с rest api, куда-то всё задеплоить. Но это всё поддерживать, решать проблемы с локальным дебагом, деплоить каждое изменение, за сервера платить и рано или поздно там что-то сломается и нужно будет тратить время на поддержку.

👨🏻‍🔧Создание

🕘 21:00

Чтобы не отвлекаться потом — подготовимся.

21:04

Создаём новый сценарий в integromat— мы будем слать сообщения телеграмм-боту, который будет записывать наши траты и в ответ будет отдавать наш баланс. Вот так:

fetch("https://api.telegram.org/bot<bot-token>/setWebhook", {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({url: "https://hook.integromat.com/<integromat token>"})
}).then(console.log).catch(console.log)
{"ok":true,"result":true,"description":"Webhook was set"}

21:09

Идём попить водички

21:11

У нас есть сообщение, которое получил бот — теперь нужно забрать из него сумму и положить отдельной строкой в таблицу. Добавляем модуль Google Sheets → Add row, авторизуемся и выбираем нашу таблицу и страницу Расходы. Делаем маппинг — в какую ячейку что мы будем класть.

  • Второй столбец — сумма. Для начала будем слать в сообщении только сумму — мы же делаем MVP! Маппинг получается такой:

21:21

Нужно получить баланс и послать его в ответ. Добавляем модуль Google Sheets → Get a cell, выбираем нашу таблицу, страницу 06.2020 и ячейку G5.

21:24

MVP есть, немного отполируем.

21:26

Если мы делаем что-то для себя или для быстрого старта — это всё равно должно выглядеть и работать приятно. Добавим описание и welcome-message.

21:28

Сейчас кто угодно может послать сообщение нашему боту — добавим фильтр, чтобы он работал только с нами. Добавляем его между вебхуком и модулем google sheets, фильтруем сообщения по отправителю

🕥 21:30

One more thing: чтобы ботом было удобно пользоваться в любой ситуации — пиним его в мессенджере. Теперь чат с ботом будет всегда наверху:

В следующих итерациях:

  • Добавляем waitlist, если кто-то захочет использовать нашего бота — зачем терять потенциальных лидов? Потом всё-таки сделаем прилу с подпиской и монетизируем их!
  • Наводим красоту в табличке
  • Добавляем универсальность — чтобы бот продолжал работать в следующем месяце
  • Добавляем отправку баланса раз в день, чтобы уже с утра понимать, как сегодня будешь отдыхать.

Итоги

  • MVP — это не сделать быстро и плохо, а сделать быстро работающий продукт. И даже не из говна и палок — запуская каждый новый продукт ты получаешь больше опыта и делаешь его MVP лучше предыдущего.
  • Делайте сайд-проекты: так вы можете ввести в свой арсенал новые инструменты, которые могут пригодиться для быстрого решения проблем на работе. Например, когда в следующий раз вам нужно будет отправить что-то в канал в слаке по хуку — вы реализуете это за 5 минут без разработки.
  • Делать максимально просто и релизить через 30 минут — лучший способ мотивации что-то делать. И ещё раз: просто ≠ плохо.
  • Микросервисы — это не всегда kubernetes, архитектура, поддержка и мониторинг. Гугл таблицы тоже могут быть микросервисом.

CTO @ Appbooster. Full-stack developer, creator of CerebroApp. Author of Saturday Night Hack: https://t.me/sn_hack

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store