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=uk 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/"))