Ремонт

Тунелюватись веб-хукі | Tunneled webhooks

#tunneling #webhooks #ngrok #telegram #bot #php #development

Грався з створенням бота для Telegram, вивчив можливість проброса публічних HTTP-запитів на робочу станцію без білого IP.

Сервісом тунелювання був обраний ngrok, так як можна користуватися абсолютно безкоштовно, є деякі обмеження, але при розробці можливостей більш ніж достатньо. Одним з обмежень для безкоштовного використання є унікальна зовнішня посилання, що веде на робочу станцію основним розробником при кожному запуску локально, через що і задумався, чи не можна автоматизувати підняття сервісу тунелювання запитів і реєстрацію веб-хуков. Так народився цей проект.

Таким чином код діє таким чином: запускає сервіс тунелювання, запитує у сервісу поточну зовнішню посилання і реєструє веб-хук Telegram c поточної зовнішньої посиланням.

Архітектура коду дозволяє додавати свої сервіси тунелювання і реєстратори / обробники веб-хуков (див. Документацію по API).

установка

Так як проект розрахований на розробників, передбачена установка тільки через Composer: виконайте

composer require donbidon / tunneled-webhooks dev-master

або додайте в файл “composer.json” код

“Require”: {
“Donbidon / tunneled-webhooks”: “dev-master”
}

і виконайте

composer update

Скачайте ngrok, зареєструйтесь, скопіюйте auth token і запустіть

/ Шлях / до / ngrok authtoken% ВАШ_ТОКЕН_ДЛЯ_АВТОРІЗАЦІІ%

Зарегистр бота Telegram і отримаєте токен авторизації для нього.

У конфігурацію локального веб-сервера (nginx, Apache не використовую для фронтенда багато років) додайте

server {
listen 127.0.0.1:80;
server_name ~ ^ (. *) \. ngrok \ .io;
; Шлях до директорії www даного проекту
root / path / to / www;
}

Скопіюйте “data / config.skeleton.php” в “data / config.php” і пропишіть шлях до ngrok / токен авторизації Telegram в новому файлі:

;;;
; шлях до ngrok:
;;;
command = “/ path / to / ngrok http 80”
[App.webhook.Telegram.Windbag]
token = “токен авторизації Telegram”

запуск

Виконайте в корені проекту

/ Шлях / до / php bin / run.php data / config.php

Буде запущений сервіс тунелювання і зареєстрований веб-хук для бота Telegram, з яким навіть можна спілкуватися 🙂