РазделВеб-разработка
Чтение8 мин
Дата16 октября 2026
ФорматПрактическая статья
Минимальная схема: сайт → сервер → Telegram Bot API
Frontend передаёт форму вашему backend. Backend сохраняет заявку и уже после этого отправляет уведомление в Telegram. Если Telegram временно недоступен, заявка не должна потеряться.
Отправить текст через Bot API
PHP
$token = getenv('TELEGRAM_BOT_TOKEN');
$chatId = getenv('TELEGRAM_CHAT_ID');
$payload = [
'chat_id' => $chatId,
'text' => "Новая заявка #123\nИмя: Иван\nТелефон: +79990000000",
];
$ch = curl_init(
'https://api.telegram.org/bot' . rawurlencode($token) . '/sendMessage'
);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
CURLOPT_CONNECTTIMEOUT => 5,
CURLOPT_TIMEOUT => 15,
]);
$response = curl_exec($ch);
$status = (int) curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
curl_close($ch);Что хранить в уведомлении
| Поле | Рекомендация |
|---|---|
| ID заявки | обязательно |
| Имя/контакт | только нужный минимум |
| URL страницы | полезно для контекста |
| UTM/source | полезно для маркетинга |
| Полный текст формы | |
| Пароли/токены | никогда |
| Платёжные реквизиты | никогда |
Bot token — только на сервере
Если вставить token в JavaScript, любой посетитель сможет его увидеть. Храните секрет в env/config вне public web root.
Если нужна двусторонняя работа
Для команд оператора или обработки входящих сообщений используйте webhook Telegram. Его endpoint должен проверять ожидаемый секрет/маршрут и быстро отвечать, а тяжёлую логику выполнять отдельно.
Что делать при ошибке Telegram
Локальная заявка уже должна быть сохранена. Зафиксируйте status/error уведомления и повторите отправку позже, а не просите пользователя заново заполнять форму.