Telegram + Табрика
Используйте Табрику как бэкенд для Telegram-бота: REST API для данных пользователей, визуальный интерфейс для управления базой, мгновенный старт без PostgreSQL.
Как начать
Создайте структуру данных
Таблица Users: telegram_id, username, настройки
Получите API-токен
Токен с правами на запись — в настройках организации, вкладка API
Интегрируйте в бота
POST /public/v1/databases/{database_id}/tables/{table_id}/records при регистрации, GET /public/v1/databases/{database_id}/tables/{table_id}/records для чтения
Опросный паттерн
Бот сам запрашивает данные по событиям пользователя через API
Архитектура Telegram-бота с Табрикой
Telegram-бот взаимодействует с Табрикой через REST API. Пользователь пишет боту — бот делает GET /public/v1/databases/{database_id}/tables/{table_id}/records для проверки пользователя, POST /public/v1/databases/{database_id}/tables/{table_id}/records для создания профиля. Данные мгновенно доступны в интерфейсе Табрики.
- Проверка пользователя: GET /public/v1/databases/{database_id}/tables/{table_id}/records?where=(telegram_id,eq,12345)
- Новый пользователь: POST /public/v1/databases/{database_id}/tables/{table_id}/records с данными в теле запроса
- Обновление данных: PATCH /public/v1/databases/{database_id}/tables/{table_id}/records/{row_id}
- Авторизация: заголовок Authorization: Bearer {ваш_токен}
Преимущества перед своей БД
Вместо PostgreSQL + SQLAlchemy + миграций + деплоя — просто Табрика. Экономите дни разработки на старте. При необходимости можно мигрировать позже.
- Нет настройки базы данных
- Визуальный интерфейс для просмотра пользователей
- Легко добавить поля без миграций
- Мгновенный старт для хакатонов
Примеры кода
import httpx
BASE = "https://api.tabrica.ru"
DB_ID = 42 # ID базы данных из URL в интерфейсе
TABLE_ID = 7 # ID таблицы из URL в интерфейсе
HEADERS = {
"Authorization": "Bearer ваш_токен",
"Content-Type": "application/json",
}
async def get_user(telegram_id: int):
async with httpx.AsyncClient() as client:
r = await client.get(
f"{BASE}/public/v1/databases/{DB_ID}/tables/{TABLE_ID}/records",
params={
"database_id": DB_ID,
"table_id": TABLE_ID,
"where": f"(telegram_id,eq,{telegram_id})",
"response_format": "names",
},
headers=HEADERS,
)
rows = r.json()["data"]["records"]
return rows[0] if rows else None
async def create_user(telegram_id: int, username: str):
async with httpx.AsyncClient() as client:
r = await client.post(
f"{BASE}/public/v1/databases/{DB_ID}/tables/{TABLE_ID}/records",
params={"database_id": DB_ID, "table_id": TABLE_ID},
json={"data": {"telegram_id": telegram_id, "username": username}},
headers=HEADERS,
)
return r.json()Ответы на вопросы
Собрали ответы на самые частые вопросы о текущих возможностях и ближайших планах
Данные хранятся на территории РФ
Табрика соответствует требованиям 152-ФЗ о персональных данных.
Инфраструктура в РФ
Хранение и обработка данных выполняются на территории Российской Федерации.
Соответствие 152-ФЗ
Табрика соответствует требованиям Федерального закона N 152-ФЗ о персональных данных.
Контроль данных
Доступы и роли помогают держать рабочие данные под управлением команды; журнал аудита за 90 дней доступен на уровнях организации, базы и таблицы и показывает изменения полей.
Посмотрите как создать
базу за 5 минут
Короткое демо, где мы совместно пройдём путь от простой таблицы до полноценного инструмента для команды.
Тарифы для разных задач
Сейчас доступен бесплатный тариф. Плюс и Бизнес находятся в разработке.
Платные тарифы ещё не запущены.
Бесплатный
Для знакомства с платформой
Всё для старта
Полный доступ к базовым возможностям для небольших проектов
Плюс
Для растущих проектов
Больше пространства для роста
Планируемые условия будут доступны после запуска тарифа
Бизнес
Для команд с большим объёмом данных
Масштаб для больших процессов
Планируемые условия будут доступны после запуска тарифа
Корпоративный
Для индивидуальных требований
В проработке
Собираем требования к корпоративному тарифу. Условия и сроки опубликуем позже.