Telegram-бот написан на базе фреймворка Laravel, подробную информацию по установке и настройке можно найти на официальном сайте.
Telegram-бот не имеет отдельной панели управления, данные загружаются с обменника по API. Все настройки производятся в панели управления обменника.
1) Зарегистрируйте нового бота, используя бот "@botFather" и скопируйте его токен (секретный ключ).
2) Используя бот "@userinfobot" узнайте и скопируйте свой "ID" (идентификатор пользователя).
API панели управления
1) Выпустите секретный ключ в разделе "Настройки приложения" - "Настройка API панели управления".
2) Заполните список доверенных IP-адресов.
Приватное API
1) Выпустите секретный ключ в разделе "Настройки приложения" - "Настройка приватного API".
2) Активируйте методы: "Обмен", "Запрос резерва", "Отправка отзыва", "Регистрация пользователя".
3) Заполните список доверенных IP-адресов.
Вебхуки
1) Выпустите секретный ключ в разделе "Настройки приложения" - "Настройка вебхуков".
2) Активируйте события: "Изменение статуса пользователя", "Изменение статуса заявки на верификацию", "Изменение статуса инвестиционного пакета", "Изменение статуса заявки на обмен", "Изменение статуса заявки на запрос резерва".
3) Укажите хост.
https://ВАШ.ДОМЕН/api/webhooks/exchanger
Перед началом установки создайте текстовый файл и заполните переменные окружения своими данными.
Пример заполнения:
APP_URL=https://ВАШ.ДОМЕН APP_API_PREFIX= APP_TIMEZONE=Europe/Kyiv APP_LOCALE=ru APP_KEY= QUEUE_CONNECTION=sync DB_DATABASE=exchanger_cms_telegram_bot DB_USERNAME=user DB_PASSWORD=12345 TELEGRAM_BOT_NAME=eechatiWake0ho_bot TELEGRAM_BOT_TOKEN=1234567890:AAE2hF7K9LmNoPqRstUvWxYzAbCdEfGhIjK TELEGRAM_ADMIN_CHAT_IDS=360634322 EXCHANGER_URL=https://demo.exchanger-cms.com EXCHANGER_DASHBOARD_API_SECRET_KEY=Fa8aexee0ohK5ohziu2IePhal6shei9z EXCHANGER_PRIVATE_API_SECRET_KEY=OR4iogohnah0meesiech5Ieb3aek9ohv EXCHANGER_WEBHOOK_SECRET_KEY=iaGh4ja5jeiHu0YohSho9ju8vahch7ei
| Переменная окружения | Описание |
|---|---|
| APP_URL | URL-адрес приложения |
| APP_API_PREFIX | Префикс для API-эндпоинтов (необязательно) |
| APP_TIMEZONE | Часовой пояс |
| APP_LOCALE | Язык по умолчанию (ru, uk, en) |
| DB_DATABASE | Название базы данных |
| DB_USERNAME | Имя пользователя базы данных |
| DB_PASSWORD | Пароль пользователя базы данных |
| TELEGRAM_BOT_NAME | Название Telegram-бота |
| TELEGRAM_BOT_TOKEN | Токен Telegram-бота |
| TELEGRAM_ADMIN_CHAT_IDS | ID администратора в Telegram (через запятую) |
| EXCHANGER_URL | URL-адрес обменника |
| EXCHANGER_DASHBOARD_API_SECRET_KEY | Секретный ключ API панели управления обменника |
| EXCHANGER_PRIVATE_API_SECRET_KEY | Секретный ключ приватного API обменника |
| EXCHANGER_WEBHOOK_SECRET_KEY | Секретный ключ вебхуков обменника |
Используйте ниже представленные переменные окружения для более глубокой настройки.
Значения по умолчанию:
HTTP_CONNECT_TIMEOUT=3 HTTP_TIMEOUT=9 TELEGRAM_MAX_CONNECTIONS=1 TELEGRAM_SENDING_DELAY=500000 TELEGRAM_MAX_UPLOAD_FILE_SIZE=500 EXCHANGER_USER_AGENT=EXCMSTB EXCHANGER_CACHE_TTL=60 EXCHANGER_CURRENCY_SORT= EXCHANGER_CURRENCY_HIDE= EXCHANGER_DIRECTION_HIDE=
| Переменная окружения | Описание |
|---|---|
| HTTP_CONNECT_TIMEOUT | Лимит времени на установление HTTP-соединения (секунды) |
| HTTP_TIMEOUT | Лимит времени на выполнение HTTP-запроса (секунды) |
| TELEGRAM_MAX_CONNECTIONS | Лимит одновременных соединений с Telegram-ботом |
| TELEGRAM_SENDING_DELAY | Задержка при отправке сообщений пользователю (микросекунды) |
| TELEGRAM_MAX_UPLOAD_FILE_SIZE | Лимит загружаемых пользователем файлов (килобайты) |
| EXCHANGER_USER_AGENT | Заголовок "User-Agent" при отправке запросов к API обменника |
| EXCHANGER_CACHE_TTL | Время жизни кеша запросов к API обменника (секунды) |
| EXCHANGER_CURRENCY_SORT | Строки идентификаторы валют для сортировки (через запятую) |
| EXCHANGER_CURRENCY_HIDE | Строки идентификаторы валют для скрытия (через запятую) |
| EXCHANGER_DIRECTION_HIDE | Строки идентификаторы направлений обмена для скрытия (через запятую) |
1) Оформите заказ на покупку Telegram-бота.
2) Скачайте архив с файлами и распакуйте его в корневую директорию сайта.
3) Создайте файл ".env" (файл переменных окружения) и заполните его подготовленными данными.
4) Установите зависимости.
composer install --no-dev --optimize-autoloader --prefer-dist --no-interaction
5) Сгенерируйте ключ приложения.
php artisan key:generate
6) Выполните миграцию базы данных.
php artisan migrate
7) Установите вебхук Telegram.
php artisan telegram:setup-webhook
8) Выполните оптимизацию приложения.
php artisan optimize -e views
9) Настройте планировщик задач (CRON) для пользователя "www-data" на выполнение команды каждую минуту:
* * * * * /usr/bin/php /var/www/ВАШ.ДОМЕН/artisan schedule:run >> /dev/null 2>&1
Для установки обновлений необходимо заменить файлы, переустановить зависимости и мигрировать базу данных.
Используйте встроенную команду для имитации Telegram вебхуков.
php artisan telegram:simulate-webhook
Используйте префикс для API-эндпоинтов (APP_API_PREFIX), что бы скрыть стандартный URL-адрес и ограничить доступ к сайту.
Пример URL-адреса без префикса:
https://ВАШ.ДОМЕН/api/webhooks/
Пример URL-адреса с префиксом:
https://ВАШ.ДОМЕН/api/gaok5gee2ooMaegheepholiezeeC0pau/webhooks/
Пример WAF правила для Cloudflare:
(http.host eq "ВАШ.ДОМЕН" and not starts_with(http.request.uri.path, "/api/gaok5gee2ooMaegheepholiezeeC0pau/webhooks/"))