Composer-пакет для быстрого подключения Laravel 12 к API rumaxbot.ru (MAX Messenger).
Репозиторий: github.com/ww-site/RuMaxBot
composer require ww-site/rumaxbotДля локальной разработки из этого репозитория:
{
"repositories": [
{
"type": "path",
"url": "../COMPLETED/001_maxbot_pack"
}
],
"require": {
"ww-site/rumaxbot": "@dev"
}
}Опубликовать конфиг (опционально):
php artisan vendor:publish --tag=rumaxbot-configRUMAXBOT_BASE_URL=https://rumaxbot.ru
RUMAXBOT_API_TOKEN=mbk_your_api_key_here
RUMAXBOT_TIMEOUT=30| Переменная | Описание | По умолчанию |
|---|---|---|
RUMAXBOT_BASE_URL |
Базовый URL сервиса | https://rumaxbot.ru |
RUMAXBOT_API_TOKEN |
Bearer-токен из ЛК rumaxbot.ru | — |
RUMAXBOT_TIMEOUT |
Таймаут HTTP-запроса (сек) | 30 |
Ошибки API и сетевые сбои пишутся в стандартный Laravel log (storage/logs/laravel.log).
Отправить тестовое сообщение в MAX одной командой:
php artisan rumaxbot:testСвоё сообщение:
php artisan rumaxbot:test --message="Привет из Laravel"
php artisan rumaxbot:test --message="<b>HTML</b>" --format=htmlУспех:
Sending test message via RuMaxBot...
Message queued successfully. Status: pending
use RuMaxBot\DataTransferObjects\SendMessageData;
use RuMaxBot\Enums\MessageFormat;
use RuMaxBot\Facades\RuMaxBot;
RuMaxBot::send(new SendMessageData(
text: '🚀 Деплой прошёл успешно!',
format: MessageFormat::Markdown,
));use RuMaxBot\Contracts\RuMaxBotClientInterface;
use RuMaxBot\DataTransferObjects\SendMessageData;
final readonly class DeployNotifier
{
public function __construct(
private RuMaxBotClientInterface $ruMaxBot,
) {}
public function notifySuccess(): void
{
$this->ruMaxBot->send(new SendMessageData(text: 'Deploy OK'));
}
}Пакет отправляет POST /api/v1/messages:
{
"text": "Сообщение",
"format": "markdown"
}Поддерживаемые форматы: markdown, html.
Успешный ответ: 202 Accepted:
{
"message": "Message queued successfully.",
"data": {
"id": "019e79d1-...",
"status": "pending"
}
}Пакет поставляется с явными тестами на двух уровнях.
Отправка реального сообщения в MAX (нужен RUMAXBOT_API_TOKEN в .env):
php artisan rumaxbot:test
php artisan rumaxbot:test --message="Привет из Laravel"
php artisan rumaxbot:test --message="<b>HTML</b>" --format=htmlКоманда: rumaxbot:test (SendTestMessageCommand).
Успех:
Sending test message via RuMaxBot...
Message queued successfully. Status: pending
Message ID: 019e79d1-...
HTTP мокается через Http::fake() — к rumaxbot.ru запросы не уходят.
composer install
vendor/bin/phpunit| Файл | Покрытие |
|---|---|
tests/Unit/RuMaxBotClientTest.php |
клиент: успешная отправка, парсинг data.status, ошибка 401, пустой токен, legacy-формат ответа |
tests/Feature/SendTestMessageCommandTest.php |
команда rumaxbot:test: успех, --message, ошибка API |
Если в проекте есть tests/Feature/RuMaxBotTest.php (как в дистрибутиве laracomposer):
php artisan test --filter RuMaxBotПроверяется регистрация в DI, команда, клиент, ошибки без токена и при 401.
MIT