Інтеграція 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 робочих днів.







