tbot / laravel
Telergam bot SDK package
1.2
2025-08-02 06:34 UTC
Requires
README
Фреймворк для создания Telegram ботов на Laravel с поддержкой мультиботной архитектуры и разделения окружений.
🚀 Возможности
- Мультиботная архитектура - управление множественными ботами
- Разделение окружений - поддержка dev и prod токенов
- Автоматическое создание классов ботов
- Webhook управление с поддержкой SSL
- Статистика и мониторинг ботов
- Экспорт/импорт данных
- Резервное копирование
📋 Требования
- PHP 8.1+
- Laravel 10+
- MySQL/PostgreSQL/SQLite
🔧 Установка
- Установите пакет:
composer require tbot/laravel
- Опубликуйте конфигурацию:
php artisan vendor:publish --provider="Bot\Providers\BotServiceProvider"
- Запустите миграции:
php artisan migrate
🌍 Настройка окружений
Система поддерживает разделение на dev и prod окружения. Текущее окружение определяется переменной APP_ENV
в файле .env
:
APP_ENV=dev # или prod
🤖 Создание бота
Команда bot:new
Создает нового бота с поддержкой разделения токенов:
php artisan bot:new
Процесс создания:
- Ввод имени бота (латинские буквы, без пробелов)
- Токен для разработки (dev) - опционально
- Токен для продакшена (prod) - опционально
- ID администраторов - опционально
- Настройка webhook - опционально
Важно: Хотя бы один токен (dev или prod) должен быть указан.
Пример использования
# Создание бота с обоими токенами php artisan bot:new # Создание бота только с dev токеном php artisan bot:new # Создание бота с предустановленным webhook php artisan bot:new --webhook=https://example.com/webhook/mybot
📊 Управление ботами
Список ботов
php artisan bot:manage list
Информация о боте
php artisan bot:manage show mybot
Активация/деактивация
php artisan bot:manage enable mybot
php artisan bot:manage disable mybot
Тестирование бота
php artisan bot:manage test mybot
Удаление бота
php artisan bot:manage delete mybot
🌐 Управление Webhook
Настройка webhook
php artisan bot:webhook set mybot https://example.com/webhook/mybot
Информация о webhook
php artisan bot:webhook info mybot
Удаление webhook
php artisan bot:webhook delete mybot
Тестирование webhook
php artisan bot:webhook test mybot
📈 Статистика и мониторинг
Общая статистика
php artisan bot:stats
Статистика конкретного бота
php artisan bot:stats --bot=mybot
Подробная статистика
php artisan bot:stats --bot=mybot --detailed
Проверка здоровья системы
php artisan bot:health
🔄 Миграция данных
Экспорт данных
php artisan bot:migrate export
Импорт данных
php artisan bot:migrate import --path=backup.json
Резервное копирование
php artisan bot:migrate backup
Очистка данных
php artisan bot:migrate clear
⚙️ Конфигурация
Просмотр конфигурации
php artisan bot:config show
Получение значения
php artisan bot:config get api.timeout
Установка значения
php artisan bot:config set api.timeout 30
🏗️ Структура проекта
app/
├── Bots/ # Классы ботов
│ ├── AbstractBot.php # Базовый класс
│ └── MyBot.php # Ваш бот
├── Console/Commands/ # Команды управления
├── Models/
│ └── Bot.php # Модель бота
config/
└── bot.php # Конфигурация
🔐 Безопасность
- Токены автоматически маскируются при отображении
- Webhook secret генерируется автоматически
- Поддержка SSL сертификатов
- Валидация входящих запросов
📝 Создание класса бота
После создания бота автоматически создается класс в app/Bots/
:
<?php namespace App\Bots; class MyBot extends AbstractBot { public function main(): void { $this->commands(); if ($this->hasMessageText() && $this->isMessageCommand()) { $this->handleCommand($this->getMessageText()); } } public function commands(): void { $this->registerCommand('start', function () { $this->sendSelf('🎉 Привет! Я бот MyBot'); }, [ 'description' => 'Запуск бота' ]); } }
🌍 Окружения
Dev окружение
- Используется токен из поля
dev_token
- Подходит для разработки и тестирования
- Может использовать HTTP webhook (локально)
Prod окружение
- Используется токен из поля
prod_token
- Для продакшена
- Требует HTTPS webhook
🔄 Миграция с версии 1.x
Если у вас есть существующие боты с единым токеном:
- Запустите миграции:
php artisan migrate
-
Существующие токены автоматически перенесутся в поле
dev_token
-
Добавьте prod токены через команду:
php artisan bot:manage show mybot
📞 Поддержка
- Issues: GitHub Issues
- Обсуждения: GitHub Discussions
📄 Лицензия
MIT License