Чат-боты · 14 октября 2026 · 3 мин чтения

Telegram-бот на PHP: когда подходит и как устроен вебхук

Эта страница на узбекском: /uz/blog/php-da-telegram-bot-yaratish

PHP часто недооценивают в разговорах о ботах: модно писать на Python или Node.js. Но у PHP есть практическое преимущество — он уже работает на миллионах сайтов. Если сайт компании сделан на PHP, бот можно разместить рядом, использовать ту же базу данных и тех же разработчиков. Для многих задач это быстрее и проще, чем поднимать отдельную инфраструктуру.

Как бот получает сообщения

У Telegram Bot API два способа доставки обновлений:

Long polling — бот сам периодически спрашивает у Telegram, есть ли новые сообщения. Требует постоянно работающего процесса. Для PHP, который традиционно обрабатывает запрос и завершается, это менее естественно, хотя реализуемо через консольный скрипт и менеджер процессов.

Webhook — Telegram сам отправляет каждое обновление POST-запросом на ваш адрес. PHP-скрипт принимает запрос, обрабатывает его и отвечает. Это идеально ложится на модель PHP и работает на обычном хостинге. Требование — адрес должен быть доступен по HTTPS с действительным сертификатом.

Для PHP-ботов в большинстве случаев выбирают вебхук.

Как устроен вебхук

  1. Вы создаёте бота через BotFather и получаете токен
  2. Размещаете скрипт-обработчик на сервере с HTTPS
  3. Регистрируете адрес обработчика методом setWebhook
  4. Telegram присылает на него JSON с каждым сообщением, нажатием кнопки или другим событием
  5. Скрипт разбирает данные и отвечает пользователю через методы Bot API

При регистрации вебхука стоит задать секретный токен: Telegram будет передавать его в заголовке, и скрипт сможет отклонять запросы не от Telegram.

Библиотеки

Писать всё через прямые HTTP-запросы можно, но удобнее использовать библиотеки. Среди популярных в PHP-сообществе — Telegram Bot SDK, php-telegram-bot и Nutgram. Они дают объекты для сообщений, клавиатур, обработчиков команд и избавляют от рутины. Если сайт сделан на Laravel или Symfony, есть пакеты интеграции с этими фреймворками: бот получает доступ к моделям, очередям и конфигурации проекта.

Структура обработчиков

Даже простой бот быстро разрастается. Чтобы код не превратился в один огромный файл с условиями, разделите его:

  • обработчики команд: /start, /help, /catalog
  • обработчики нажатий на inline-кнопки
  • обработчики текстовых сообщений в зависимости от шага диалога
  • сервисы для работы с базой и внешними API
  • шаблоны текстов сообщений, отдельно от логики

Состояние диалога

Каждый запрос в PHP обрабатывается независимо, поэтому бот не помнит, на каком шаге находится пользователь. Состояние нужно хранить: в базе данных, Redis или сессиях библиотеки. Например, при оформлении заявки бот записывает, что пользователь на шаге «ввод телефона», и следующее сообщение обрабатывает соответственно. Без продуманного хранения состояния многошаговые сценарии ломаются при параллельных диалогах.

Медленные операции

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

Безопасность

  • Храните токен в конфигурации окружения, а не в коде репозитория
  • Проверяйте секретный токен вебхука
  • Не выводите ошибки PHP наружу — они могут раскрыть пути и данные
  • Ограничьте административные команды списком идентификаторов пользователей
  • Экранируйте пользовательский ввод при работе с базой

Когда PHP — хороший выбор

  1. Сайт компании уже на PHP, и бот работает с теми же данными
  2. В команде есть PHP-разработчики
  3. Бот обрабатывает заявки, отвечает на вопросы, показывает каталог
  4. Нужен простой хостинг без отдельного сервера

Если боту нужно долго держать соединения, работать с потоковыми данными или интенсивно использовать машинное обучение, удобнее другие стеки. Если хотите бота, который работает в связке с вашим сайтом, напишите — оценим, как встроить его в текущую инфраструктуру.

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Обсудить проект

Статьи по теме

Чат-боты

Где разместить Telegram-бота: сервер, хостинг и вебхук

Бот должен работать круглосуточно, а не на ноутбуке разработчика. Разбираем варианты размещения, разницу между опросом и вебхуком и что настроить на сервере.

14 октября 2026

Чат-боты

Разработка мини-приложения Telegram: стек, этапы и требования

Мини-приложение — это веб-приложение, которое открывается внутри Telegram. Разбираем, на чём его пишут, как оно связано с ботом и из каких этапов состоит разработка.

14 октября 2026

Чат-боты

Безопасность мини-приложений Telegram: проверка данных пользователя

Мини-приложение доступно по обычному веб-адресу, и любой может попытаться обратиться к его API напрямую. Разбираем, как правильно проверять пользователя и защищать данные.

14 октября 2026

Чат-боты

Чат-бот простыми словами: как он работает и что умеет

Чат-бот — программа, которая переписывается с людьми по заданным правилам или с помощью ИИ. Объясняем без технических терминов, как он устроен и чем полезен.

14 октября 2026

Чат-боты

ТЗ на чат-бота: сценарии, тексты и интеграции

Без технического задания подрядчик сделает бота так, как понял. Разбираем, из каких разделов состоит ТЗ на чат-бота и как описать сценарии, чтобы их нельзя было понять неправильно.

14 октября 2026

Чат-боты

Внедрение чат-бота в компании: запуск, проверка и метрики

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

14 октября 2026

Заявка

Обсудим задачу

Оставьте имя и телефон — перезвоним, расспросим о процессе и предложим, с чего начать.

Или позвоните

+998 94 444 48 85

Нажимая кнопку, вы соглашаетесь на обработку контактных данных.