JUNIOR-BLOG

Для всех кто увлекается программированием

Главная

Что такое 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 и полезные приёмы

Читать дальше...

Комментарии