batyukovstudio/max-laravel-notification-channel
最新稳定版本:v1.0.1
Composer 安装命令:
composer require batyukovstudio/max-laravel-notification-channel
包简介
MAX Notifications Channel for Laravel
README 文档
README
Пакет batyukovstudio/max-laravel-notification-channel добавляет канал уведомлений Laravel для MAX Bot API.
composer require batyukovstudio/max-laravel-notification-channel
Добавьте переменные в .env:
MAX_BOT_TOKEN=your-max-bot-token MAX_API_BASE_URI=https://platform-api.max.ru
После этого опишите конфигурацию в config/services.php:
'max' => [ 'token' => env('MAX_BOT_TOKEN'), 'base_uri' => env('MAX_API_BASE_URI', 'https://platform-api.max.ru'), ],
Пакет читает настройки из конфигурации приложения через config('services.max.*'), а не напрямую из .env. Такой подход корректно работает с php artisan config:cache, потому что вызовы env() остаются только внутри конфигурационных файлов Laravel.
Использование
Верните канал MAX из метода via() вашего уведомления и сформируйте сообщение в методе toMax().
use Illuminate\Notifications\Notification; use NotificationChannels\Max\MaxChannel; use NotificationChannels\Max\MaxMessage; class InvoicePaid extends Notification { public function via($notifiable): array { return [MaxChannel::class]; } public function toMax($notifiable): MaxMessage { return MaxMessage::create('Оплата получена') ->toUser($notifiable->max_user_id) ->markdown() ->button('Открыть счёт', 'https://example.com/invoice/1'); } }
Если получатель не указан прямо в сообщении, канал попытается определить его через routeNotificationForMax():
public function routeNotificationForMax(): int|array { return $this->max_user_id; // или: // return ['chat_id' => $this->max_chat_id]; }
Прямое использование API
use NotificationChannels\Max\MaxClient; use NotificationChannels\Max\MaxMessage; $message = MaxMessage::create('Здравствуйте!') ->toUser(12345) ->html(); $response = app(MaxClient::class)->sendMessage($message);
Сообщение можно отправить и напрямую через fluent builder:
MaxMessage::create('Проверка связи') ->toUser(12345) ->send();
Возможности
- Текстовые сообщения с форматированием
markdownиhtml. - Построение inline-клавиатуры с кнопками
callback,link,request_contact,request_geo_location,open_app,message. - Загрузка файлов
image,video,audio,fileчерез MAX Upload API. - Получение обновлений через
MaxUpdates. - Работа с webhook-подписками через
MaxSubscription. - Ответы на callback через
MaxCallbackAnswer. - Редактирование, удаление и получение сообщений через
MaxClient.
Архитектура Porto SAP
Внутренняя реализация пакета организована по Porto SAP:
src/Containers/MessengerSection/*содержит Actions и Tasks для отправки уведомлений, загрузки файлов, обновлений, подписок и callback-ответов.src/Ship/*содержит общую инфраструктуру: транспорт, enum'ы, traits и исключения.- Публичные точки входа остаются простыми:
MaxChannel,MaxClient,MaxMessage,MaxUpdates,MaxSubscription,MaxCallbackAnswer.
Примеры
Получение обновлений через long polling
use NotificationChannels\Max\MaxUpdates; $updates = MaxUpdates::create() ->limit(100) ->timeout(30) ->types(['message_created', 'message_callback']) ->get();
Подписка на webhook
use NotificationChannels\Max\MaxSubscription; MaxSubscription::create('https://example.com/max/webhook') ->updateTypes(['message_created', 'bot_started']) ->secret('secret_12345') ->subscribe();
Ответ на callback
use NotificationChannels\Max\MaxCallbackAnswer; use NotificationChannels\Max\MaxMessage; MaxCallbackAnswer::create($callbackId) ->notification('Готово') ->message( MaxMessage::create('Сообщение обновлено') ->buttonWithCallback('Ещё раз', 'retry') ) ->send();
Тестирование
composer test
Разработчик
Разработчик пакета: ООО «Студия Батюкова»
- Сайт: www.batyukovstudio.com
- Email: office@batyukovstudio.com
- Телефон: +7 963 053 1333
ООО «Студия Батюкова» разрабатывает сайты, интернет-магазины и веб-приложения для малого бизнеса, корпораций и государственных организаций. Компания проектирует UX/UI-дизайн в Figma, помогает выстраивать удобный пользовательский опыт, автоматизировать бизнес-процессы и внедрять интеграции с CRM, ERP, платёжными системами, складскими решениями и другими внешними сервисами под задачи проекта.
Студия Батюкова выполняет разработку сайтов и интернет-магазинов под ключ, включая сложные проекты на авторской CMS с упором на безопасность, производительность и полную кастомизацию под бизнес-процессы заказчика. Компания создаёт UX/UI-дизайн в Figma, проектирует архитектуру, реализует frontend и backend, проводит тестирование и развивает цифровые продукты без шаблонных ограничений.
Отдельное направление работы студии — интеграции с внешними системами: CRM, ERP, эквайрингом, службами доставки, складскими платформами, платёжными решениями и любыми другими сервисами через API. Если вам нужен не только пакет, а полноценная коммерческая разработка, команда ООО «Студия Батюкова» берёт на себя полный цикл: аналитику, дизайн, разработку, SEO-направление, автоматизацию и техническую поддержку.
Лицензия
Пакет распространяется по лицензии MIT.
Это означает, что его можно использовать, копировать, изменять и распространять как в коммерческих, так и в некоммерческих целях, включая закрытые корпоративные проекты, без требования открывать исходный код вашего приложения.
Единственное обязательное условие MIT: при распространении нужно сохранять текст лицензии и уведомление об авторских правах.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-03-31