Настройка работы телеграм бота на локальном сервере

Инструкция по настройке работы телеграм-бота на локальном сервере

Известно, что код телеграм-бота получает запросы от Telegram с помощью web-hook, а в ответ отправляет запрос на Telegram API. Но что делать, если код находится в стадии разработки и расположен на локальном компьютере?

Для решения этой проблемы есть сервис ngrok https://ngrok.com/

Сервис позволяет получать запросы от Telegram и направлять на локальный компьютер.


Первое, нужно зарегистрироваться на сайте https://ngrok.com/

Скопировать токен


При входе появляется сообщение создания поддомена


На странице https://ngrok.com/download скачать программу для своей платформы, в моем случае это скачивание архива и его распаковка в систему

sudo tar xvzf ./ngrok-v3-stable-linux-amd64.tgz -C /usr/local/bin


Все готово для запуска

ngrok http --authtoken=2Smc22....4WoPRYXL --domain=w....nd.ngrok-free.app chatbot

В параметре --authtoken указывается свой токен, в параметре --domain - полученный поддомен на сайте ngrok, chatbot - это локальный домен, на котором расположен исходный код телеграм-бота


В настройках локального web-сервера добавить созданный домен


server {
    listen       80;
    server_name  chatbot wr***ound.ngrok-free.app;


Теперь при открытии домена открывается локальный проект



На локальном веб-сервере необходимо добавить обработку поддомена, который создан в ngrok.com


Далее необходимо сообщить в Telegram куда отправлять запросы, для этого создать web-hook

$bot = new BotApi(config('telegram.token'));
$response = $bot->setWebhook('https://w........d.ngrok-free.app/api/telegram');


Теперь Telegram может отправлять запросы на локальный сервер, /api/telegram - это адрес контроллера, который обрабатывает запросы из чат-бота.



Оставить комментарий

Комментарий отправится на проверку

Отправка
Спасибо! Комментарий добавлен
Копировать можно с указанием активной ссылки на эту страницу.
Давайте уважать труд других.