Интеграция Telegram Bot API в мобильное приложение
Telegram Bot API — один из самых простых в интеграции каналов уведомлений. HTTP API без SDK, документация прямолинейная, sandbox не нужен. Но есть нюансы: пользователь должен сам начать диалог с ботом, webhook требует HTTPS с валидным сертификатом, а Telegram Web App открывает возможности для полноценного мини-приложения внутри Telegram.
Отправка уведомлений через бот
Минимальный флоу: пользователь нажимает «Подключить Telegram» в приложении, переходит к боту, нажимает /start — бот получает chat_id, бэкенд его сохраняет и использует для отправки.
Отправка сообщения:
POST https://api.telegram.org/bot{TOKEN}/sendMessage
Content-Type: application/json
{
"chat_id": 123456789,
"text": "Ваш заказ #98765 передан в доставку 🚚",
"parse_mode": "HTML",
"reply_markup": {
"inline_keyboard": [[
{ "text": "Отследить", "url": "https://yourbrand.com/track/98765" },
{ "text": "Связаться", "callback_data": "contact_support_98765" }
]]
}
}
parse_mode: "HTML" или "MarkdownV2" — для форматирования. HTML проще в использовании: <b>, <i>, <code>, <a href="...">.
Получение chat_id — через webhook. Бэкенд регистрирует webhook:
POST https://api.telegram.org/bot{TOKEN}/setWebhook
{ "url": "https://api.yourbrand.com/telegram/webhook" }
При /start от пользователя Telegram пришлёт:
{
"message": {
"from": { "id": 123456789, "username": "user_alex" },
"chat": { "id": 123456789 },
"text": "/start auth_token_from_deeplink"
}
}
В /start можно передавать параметр через deep link вида https://t.me/YourBot?start=user_uuid_12345. Так chat_id автоматически привязывается к пользователю системы без дополнительного подтверждения.
Inline Keyboard и Callback Queries
Кнопки в сообщении — это inline keyboard. При нажатии Telegram отправляет callback_query на webhook:
{
"callback_query": {
"from": { "id": 123456789 },
"message": { "message_id": 456, "chat": { "id": 123456789 } },
"data": "contact_support_98765"
}
}
После обработки нужно ответить на callback_query, иначе кнопка будет крутить индикатор бесконечно:
POST https://api.telegram.org/bot{TOKEN}/answerCallbackQuery
{ "callback_query_id": "...", "text": "Соединяем с поддержкой..." }
Telegram Web App (TWA)
Для полноценного интерфейса внутри Telegram — Telegram Web App. Кнопка web_app в keyboard открывает мини-браузер с вашим веб-приложением. Мобильное приложение в этом контексте выступает как PWA или React-приложение:
// В Web App доступен Telegram WebApp SDK
const tg = window.Telegram.WebApp;
tg.ready();
// Данные пользователя
const user = tg.initDataUnsafe.user;
// Отправить данные боту и закрыть TWA
tg.sendData(JSON.stringify({ action: "order_confirmed", orderId: "98765" }));
Мобильное приложение: глубокая ссылка для подключения бота
На мобильной стороне нужна кнопка «Подключить Telegram», которая открывает Telegram с deep link. На iOS и Android:
// Android
val telegramDeepLink = "https://t.me/YourBotName?start=${currentUser.id}"
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(telegramDeepLink))
startActivity(intent)
// iOS
let deepLink = "https://t.me/YourBotName?start=\(currentUser.id)"
if let url = URL(string: deepLink) {
UIApplication.shared.open(url)
}
Если Telegram не установлен — ссылка откроется в браузере, предложит установить или войти через Web Telegram.
После привязки бэкенд отмечает пользователя как «Telegram подключён» — мобильное приложение при следующем запуске подтягивает этот статус и меняет UI кнопки.
Сроки
Интеграция Telegram Bot API, webhook-обработчик с командами и callback queries, deep link привязка пользователя, мобильный UI подключения бота — 3–5 рабочих дней.







