Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Как я сделал общие доски в Telegram, которые живут прямо в чате

Дата публикации: 31-07-2026 15:09:19

Я сделал бота для заметок и задач в Telegram — TG Notion. Недавно добавил общие доски, которые работают прямо в чате. В этой статье расскажу, как это устроено технически, с чем пришлось сильно повозиться и что ещё не готово. До общих досок бот уже умел личные заметки и задачи. Пользователь заходит, пишет заметку, ставит задачу с чекбоксом — всё как в обычном блокноте, только внутри Telegram. Читать далее

Основное содержимое страницы с новостью.

Я сделал бота для заметок и задач в Telegram — TG Notion. Недавно добавил общие доски, которые работают прямо в чате. В этой статье расскажу, как это устроено технически, с чем пришлось сильно повозиться и что ещё не готово.

До общих досок бот уже умел личные заметки и задачи. Пользователь заходит, пишет заметку, ставит задачу с чекбоксом — всё как в обычном блокноте, только внутри Telegram. Выглядит примерно так:

Поле заметок

Поле заметок

Потом я подумал,что для командной работы или просто для компании друзей было бы прикольно использовать общие доски,как для идей,так и для заметок. Использовать их в чатах телеграм.

Сейчас это работает так: Создаёшь доску, выбираешь тип (заметки или задачи), нажимаешь «Поделиться» — и в выбранный чат падает карточка с названием доски и тремя кнопками: «Добавить», «Открыть», «Обновить».

Доска в чате

Доска в чате

Все участники чата видят эту карточку. Можно добавить заметку или задачу — она появится у всех. Кнопка «Обновить» показывает актуальный список. Кнопка «Открыть» открывает полный интерфейс Mini App, где можно редактировать и удалять свои записи.

Доска в миниэпп

Доска в миниэпп

Технически это работает через inline‑режим Telegram: бот получает запрос, находит доску в базе и через answerInlineQuery возвращает карточку с кнопками. Кнопки «Добавить» и «Открыть» — это прямые ссылки на Mini App с параметрами. “Обновить” — callback, который перерисовывает сообщение.

Бот написан на Node.js с библиотекой node‑telegram‑bot‑api. База — SQLite через better‑sqlite3, без ORM, чистые SQL‑запросы. Хостится на Bothost. Mini App — отдельная HTML/CSS/JS страница, которая открывается внутри Telegram через WebApp API.

Изначально бот был на Python с aiogram, но Bothost с ним не сдружился — вебхуки работали через раз. После переезда на Node.js проблемы с хостингом ушли. Плюс better‑sqlite3 работает синхронно и быстро, без отдельных серверов для базы.

Код выложен на GitHub, репа открытая: https://github.com/Elrick‑from‑Malnibone/tg‑notion‑node

С чем пришлось повозиться...

Начну с того, что часть проблем ушла после переезда на Node.js. На Python+aiogram я долго не мог заставить Bothost нормально работать с вебхуками — платформа их вроде поддерживает, но на практике всё упиралось в 502. После перехода на Node.js эти проблемы исчезли. Но появились другие.

Вебхуки и allowed_updates. Telegram требует, чтобы для inline‑режима бот принимал обновления типов inline_query и callback_query. Bothost при каждом деплое сбрасывал allowed_updates до дефолтных, и бот переставал видеть inline‑запросы. Я не мог понять, с чего это карточка не отправляется в чат?? Оказалось надо принудительно указывать allowed_updates при установке вебхука прямо в коде:

bot.setWebHook(url, {
    allowed_updates: ['message', 'inline_query', 'callback_query']
});

502 ошибка. Даже после фикса вебхука, getWebhookInfo показывал 502 Bad Gateway. Помогло добавление health‑check эндпоинта /health, который просто отвечает 200 OK. Заодно добавил проверку req.method === 'POST' в обработчик вебхука — Telegram шлёт только POST, а Bothost при проверке стучался GET'ом и получал непонятный ответ.

if (pathname === '/health' && req.method === 'GET') {
    res.writeHead(200, { 'Content-Type': 'application/json' });
    res.end(JSON.stringify({ ok: true }));
    return;
}

web_app внутри inline_keyboard. Хотел сделать кнопку «Добавить» через web_app, чтобы сразу открывать Mini App. Не работает. Telegram не поддерживает web_app внутри inline_keyboard. Пришлось переделать на прямые ссылки с параметром startapp.

{ text: '➕ Добавить', url: `https://t.me/Telega_notion_bot?startapp=board_add_${hash}` }

Авторегистрация юзеров. Пользователи, которые заходили в доску по ссылке, не регистрировались в боте — я их не видел в статистике. Добавил проверку и авторегистрацию в трёх местах: inline_query, callback_query и при добавлении заметки через API. Наверное потерял много юзеров. А может и нет,как щас узнаешь.

В итоге

Сейчас бот умеет:

  • Личные заметки и задачи (с чекбоксами, тёмной/светлой темой)

  • Общие доски двух типов: для заметок и для задач

  • Доска появляется в чате как inline‑карточка с кнопками «Добавить», «Открыть», «Обновить»

  • Права доступа: редактировать и удалять записи может только автор

  • Авторегистрация пользователей при входе в доску (не нужно жать /start)

Доска задач в чате

Доска задач в чате

Что ещё не умеет,но скоро будет:

  • Добавление задач прямо из чата (пока открывается Mini App)

  • Галочки в inline‑карточке задач, которые можно отмечать без открытия Mini App

  • Английский язык

  • напоминалки и дедлайны

  • Нормальное превью ссылки на доску (OG‑теги)

Сейчас в моём канале @system_develope идёт голосование за следующую фичу. Подписчики решают, что я буду пилить дальше. Так что добро пожаловать, буду рад каждому голосу!).

Бот: https://t.me/Telega_notion_bot

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Как я без опыта программирования создал Telegram‑бота, который уже два года ведёт новостной канал07.2329-07-2026
2Облегчи себе разработку ботов – Raito08.2626-07-2026
3Как мы построили IAM для Telegram поверх Telethon и автоматизировали управление сотней корпоративных Telegram-чатов-18.7728-07-2026
4Telegram 2026 в России: взгляд разработчика ботов08.2607-08-2026
5Я дал AI-агенту доступ к своему Telegram. Вот что из этого получилось07.6418-08-2026
6DarkGram: как мы делаем power‑user Telegram‑клиент для iOS — и почему его нет в App Store06.7620-07-2026
7Я сделал полностью локальный Telegram Wrapped после того, как у меня угнали фейк с тремя переписками06.8921-07-2026
8Как Google Apps Script незаметно ломает вебхуки Telegram-ботов010.3603-08-2026
9Как я научила Telegram-бота наводить порядок в чате с мемами: пересылка по хештегам в соответствующую тему07.6401-06-2026
10Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей010.7616-08-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 7.07. Источник: habr.com.