max-messenger-bot / max-bot-symfony-bundle
Symfony bundle for Max Messenger Bot API
Package info
github.com/max-messenger-bot/max-bot-symfony-bundle
Type:symfony-bundle
pkg:composer/max-messenger-bot/max-bot-symfony-bundle
Requires
- php: ^8.2
- max-messenger-bot/max-bot-api-php: ^0.3
- symfony/config: ^6.4|^7.0
- symfony/console: ^6.4|^7.0
- symfony/dependency-injection: ^6.4|^7.0
- symfony/http-foundation: ^6.4|^7.0
- symfony/http-kernel: ^6.4|^7.0
- symfony/routing: ^6.4|^7.0
Requires (Dev)
- codeception/codeception: ^5.3
- codeception/module-asserts: *
- squizlabs/php_codesniffer: ^4.0
- symfony/framework-bundle: ^6.4|^7.0
- vimeo/psalm: ^6.16
README
Symfony-бандл для интеграции Max Messenger Bot API PHP SDK в Symfony-приложения.
Бандл регистрирует готовые сервисы в DI-контейнере, предоставляет webhook-контроллер, команду для запуска long polling и набор управляющих команд для работы с ботом из консоли.
Требования
- PHP 8.2+
- Symfony 6.4 или 7.x
Установка
composer require max-messenger-bot/symfony-bundle
Зарегистрируйте бандл в config/bundles.php:
return [ // ... MaxMessenger\Bot\Bundle\MaxBotBundle::class => ['all' => true], ];
Создайте файл конфигурации config/packages/max_bot.yaml:
max_bot: access_token: '%env(MAX_BOT_TOKEN)%' webhook_secret: '%env(MAX_BOT_SECRET)%'
Добавьте переменные окружения в .env:
MAX_BOT_TOKEN=your-access-token MAX_BOT_SECRET=your-webhook-secret
Быстрый старт
1. Создайте обработчик событий
// src/Bot/GreetingHandler.php use MaxMessenger\Bot\Bundle\Contract\MaxBotHandlerInterface; use MaxMessenger\Bot\MaxBot; use MaxMessenger\Bot\MaxBot\Event\BotStartedEvent; use MaxMessenger\Bot\MaxBot\Event\MessageCreatedEvent; final class GreetingHandler implements MaxBotHandlerInterface { public function register(MaxBot $bot): void { $bot->onBotStarted(function (BotStartedEvent $event): bool { $event->sendToChat('Привет! Я бот на Symfony.'); return true; }); $bot->onMessageCreated(function (MessageCreatedEvent $event): bool { $event->reply('Ваше сообщение получено.', true); return true; }); } }
Благодаря autoconfigure, сервис подхватывается автоматически — никакой ручной регистрации не нужно.
2. Выберите режим работы
Webhook — добавьте маршрут в config/routes.yaml:
max_bot: resource: '@MaxBotBundle/config/routes.php' type: php
Long polling — запустите команду:
php bin/console max-bot:run-polling
Консольные команды
| Команда | Описание |
|---|---|
max-bot:run-polling |
Запуск бота в режиме long polling |
max-bot:debug |
Long polling с выводом сырых событий (для отладки) |
max-bot:chats |
Список чатов бота с пагинацией |
max-bot:delete-chats |
Удаление чатов, где бот является владельцем |
max-bot:subscribe |
Регистрация webhook-подписки |
max-bot:subscriptions |
Просмотр активных webhook-подписок |
max-bot:unsubscribe |
Удаление webhook-подписки |
Все команды берут access token из конфигурации Symfony — запрашивать его вручную не нужно.
Документация
- Установка и настройка
- Конфигурация
- Обработчики событий
- Webhook
- Long Polling
- Сервисы DI-контейнера
- Консольные команды
- Примеры
Документация основного SDK
Подробнее о работе с событиями, сообщениями и API-клиентом читайте в документации max-messenger-bot/max-bot-api-php.