Что такое Ngrok и как им пользоваться при разработке Telegram-бота
При разработке Telegram-ботов мы часто сталкиваемся с необходимостью протестировать бота на локальной машине, но Telegram требует, чтобы бот имел доступный из интернета HTTPS-адрес — например, для webhook
. Тут мы можем использовать пару известных мне способов:
- Long Polling - наш бот с секундной задержкой будет сам опрашивать телеграмм в цикле;
- Ngrok - сервис который позволяет открыть доступ к локальному адресу. Он создаст алиас на порт приложения в локалке.
Ngrok — это кроссплатформенное приложение, которое пробрасывает туннель из интернета к локальному серверу. То есть, вы можете получить внешний HTTPS-адрес, который ведёт прямо на ваш локальный localhost
.
📌 Пример:
ngrok http 8000
Ngrok сгенерирует URL вроде:
https://1a2b-92-101-66-21.ngrok-free.app → http://localhost:8000
Самый простой способ его установить воспользоваться snap или же скачать с официального сайта. После чего регистрируемся на сайте https://ngrok.com/ .
После регистрации откроется дашбоард на котором будет команда для авторизации в терминале

Теперь запускаем ngrok
ngrok http 8000
И копируем ссылку. Теперь можно подписаться на вебхук от телеграмма:
```sh
curl -X POST "https://api.telegram.org/bot<botToken>/setWebhook" \
-d "url=<ngrokUrl>" \
-d "allowed_updates=[\"message\",\"callback_query\"]"
```
✅ Готово!
Теперь, когда пользователь отправляет сообщение боту, Telegram будет делать POST
-запрос на ваш локальный файл bot.php
, передавая Update
-объект.
Вы можете:
- логировать запросы в
log.txt
- отвечать пользователю через Telegram Bot API
Так же можно открыть http://127.0.0.1:4040/inspect/http и посмотреть какие данные отправляет нам телеграмм или иной сервис к которому мы подписались.
🔒 Важные замечания
- Ngrok с бесплатным тарифом может менять URL при каждом запуске. Используйте Ngrok Cloud Edge (Pro) для фиксированных адресов.
- Не забудьте перерегистрировать Webhook при каждом изменении URL.
🧠 Вывод
Ngrok позволяет эмулировать публичный сервер на вашем локальном компьютере, не открывая порты и не настраивая хостинг. Это делает его идеальным инструментом для разработки Telegram-ботов, особенно на ранних этапах.
Похожие статьи
Работа с датами в PHP
DateTime, DateTimeImmutable, DateTimeInterface и полезные приёмы
Читать дальше...