# Telegram gateway (NL)

Эта папка — узкий шлюз между Routena и Telegram. Она нужна, когда российский
сервер не может стабильно подключиться к `api.telegram.org`.

Схема работы:

```text
Routena (БД, amoCRM, процессы) → NL gateway → Telegram
Telegram → NL gateway → Routena telegram_webhook.php
```

Токен бота находится только на NL-сервере. Запросы Routena к шлюзу подписаны
HMAC-SHA256; шлюз принимает только отправку сообщений.

## Установка через FileZilla

1. На NL-хостинге откройте публичную папку сайта (`public_html`, `www` или
   аналог) и создайте в ней папку, например `telegram-gateway`.
2. Загрузите в неё **все файлы** из этой локальной папки, кроме `.env.example`.
3. На компьютере сделайте копию `.env.example` с именем `.env`, заполните её и
   загрузите в ту же папку на NL-сервер. Файл `.env` не должен быть доступен из
   браузера. Если FileZilla не показывает файлы с точкой, включите показ скрытых
   файлов.
4. В основном `routena/.env` добавьте две строки:

   ```ini
   TELEGRAM_GATEWAY_URL=https://ВАШ-NL-ДОМЕН/telegram-gateway/telegram_gateway.php
   TELEGRAM_GATEWAY_SECRET=то_же_самое_значение_что_в_NL_.env
   ```

   Не меняйте текущие `TELEGRAM_BOT_TOKEN` и `TELEGRAM_WEBHOOK_SECRET`.
5. Загрузите на основной сервер обновлённый файл
   `backend/telegram_notifier.php`.
6. Откройте в браузере один раз:

   ```text
   https://ВАШ-NL-ДОМЕН/telegram-gateway/register_webhook.php?key=TELEGRAM_GATEWAY_SETUP_KEY
   ```

   Вместо `TELEGRAM_GATEWAY_SETUP_KEY` подставьте значение из NL `.env`.
   Ожидаемый ответ: `success: true`.
7. Отправьте боту `/start` и проверьте уведомление из процесса.

## Значения .env

- `TELEGRAM_BOT_TOKEN` — токен из BotFather.
- `TELEGRAM_WEBHOOK_SECRET` — **то же** значение, которое уже настроено на
  Routena-сервере.
- `TELEGRAM_GATEWAY_SECRET` — новый случайный секрет не короче 32 символов;
  он должен совпадать в обоих `.env`.
- `TELEGRAM_GATEWAY_SETUP_KEY` — отдельный случайный секрет не короче
  32 символов для страницы регистрации webhook.
- `TELEGRAM_ROUTENA_WEBHOOK_URL` — текущий публичный адрес
  `backend/telegram_webhook.php` на сервере Routena.
- `TELEGRAM_PUBLIC_WEBHOOK_URL` — публичный HTTPS-адрес файла
  `telegram_update.php` на NL-сервере.

Не передавайте токен или значения секретов в чат.
