Download the PHP package dizvestnov/laravel-max-bot without Composer
On this page you can find all versions of the php package dizvestnov/laravel-max-bot. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package laravel-max-bot
Laravel MAX Bot
Laravel-пакет для работы с MAX messenger Bot API.
Совместимость
| Ветка | Laravel | PHP | Testbench |
|---|---|---|---|
| 1.x | 8, 9 | 7.4, 8.0 | 6, 7 |
| 3.x | 12, 13 | 8.2, 8.3, 8.4 | 10, 11 |
Установка
Опубликовать конфиг:
Добавить в .env:
Токен выдаётся при создании бота через @MaxBotFather в MAX.
Настройка
Файл config/max-bot.php после публикации:
Переменные окружения
| Переменная | По умолчанию | Описание |
|---|---|---|
MAX_BOT_TOKEN |
— | Токен бота (обязательно) |
MAX_BOT_BASE_URI |
https://platform-api.max.ru |
Базовый URL API |
MAX_BOT_TIMEOUT |
30 |
Таймаут HTTP-запросов (сек) |
MAX_BOT_WEBHOOK_SECRET |
null |
HMAC-секрет для проверки подписи |
MAX_BOT_WEBHOOK_PATH |
max-bot/webhook |
URL-путь для вебхука |
MAX_BOT_QUEUE_ENABLED |
false |
Обрабатывать обновления через очередь |
MAX_BOT_QUEUE_CONNECTION |
null |
Соединение очереди (null = дефолтное) |
MAX_BOT_QUEUE_NAME |
default |
Имя очереди |
Отправка сообщений
Fluent-builder (рекомендуется)
Через фасад (низкоуровневый доступ)
Клавиатуры и кнопки
Типы кнопок
| Класс | Описание |
|---|---|
CallbackButton |
Callback-кнопка с payload |
LinkButton |
Ссылка на URL |
RequestContactButton |
Запрос контакта пользователя |
RequestGeoLocationButton |
Запрос геолокации |
MessageButton |
Кнопка, отправляющая текст в чат |
ClipboardButton |
Копирует текст в буфер обмена |
Пример клавиатуры
Вебхуки
1. Настройка маршрута
Маршрут регистрируется автоматически. По умолчанию: POST /max-bot/webhook.
Изменить путь через .env:
2. Защита подписью (рекомендуется)
Middleware VerifyMaxBotSignature проверяет HMAC-подпись каждого запроса и возвращает 403 при несовпадении.
3. Установить URL вебхука
4. Обработка событий
Зарегистрируйте слушатели в EventServiceProvider:
Пример слушателя:
5. Доступные события
| Класс | Когда срабатывает |
|---|---|
MessageReceived |
Получено новое сообщение |
MessageEdited |
Сообщение отредактировано |
MessageRemoved |
Сообщение удалено |
CallbackReceived |
Нажата callback-кнопка |
BotStarted |
Пользователь запустил бота |
BotAdded |
Бот добавлен в чат |
BotRemoved |
Бот удалён из чата |
UserAdded |
Пользователь добавлен в чат |
UserRemoved |
Пользователь удалён из чата |
ChatTitleChanged |
Изменено название чата |
Методы, доступные во всех событиях (наследуются от MaxBotEvent):
MessageReceived дополнительно:
6. Обработка через очередь
Long Polling
Для локальной разработки или простых сценариев без публичного URL:
Команда получает обновления циклически через API и диспатчит те же события, что и вебхук.
Управление состоянием разговора
StateManager хранит состояние и данные пользователя в кэше Laravel.
Методы StateManager
Artisan-команды
| Команда | Описание |
|---|---|
max-bot:webhook:set {url} |
Установить URL вебхука |
max-bot:webhook:info |
Показать текущий вебхук |
max-bot:webhook:remove |
Удалить вебхук |
max-bot:poll |
Запустить long polling |
Полный API-клиент
Все методы доступны через фасад MaxBot:: или через DI MaxBotClientInterface:
Бот
Сообщения
Чаты
Участники
Подписки и обновления
Медиа
Тестирование
Мокайте MaxBotClientInterface:
Статус проекта
Пакет находится в активной разработке. Это первый публичный релиз.
API может изменяться до выхода стабильных версий 1.0.0 / 3.0.0. Используйте в production с осторожностью и закрепляйте конкретную версию в
composer.json.
Сообщить об ошибке
-
Поищите в существующих issues — возможно, проблема уже известна: github.com/dizvestnov/laravel-max-bot/issues
-
Создайте новый issue, указав:
- версию пакета (
composer show dizvestnov/laravel-max-bot) - версию PHP и Laravel
- минимальный воспроизводимый пример кода
- ожидаемое поведение и что происходит на самом деле
- полный текст ошибки / стектрейс
- версию пакета (
- Для вопросов используйте Discussions, а не Issues.
Участие в разработке
- Форкните репозиторий и создайте ветку от
main(3.x) или1.x - Напишите или обновите тесты — покрытие обязательно
-
Убедитесь, что все проверки проходят локально:
- Откройте Pull Request с описанием изменений
Ветка 2.x намеренно пропущена — PR приветствуются.
Лицензия
MIT
All versions of laravel-max-bot with dependencies
illuminate/support Version ^12.0|^13.0
illuminate/http Version ^12.0|^13.0
illuminate/console Version ^12.0|^13.0
illuminate/queue Version ^12.0|^13.0
guzzlehttp/guzzle Version ^7.4