letoceiling-coder/max
Composer 安装命令:
composer require letoceiling-coder/max
包简介
Laravel package for Max Bot API and Mini App integration (https://dev.max.ru)
README 文档
README
Полноценная библиотека для работы с Max Bot API и Mini App в Laravel.
Соответствует актуальной официальной документации:
Возможности
- Полный набор методов Bot API (
GET /me,PATCH /me,messages,chats,answers,uploadsдвухэтапно,subscriptions,updates,videos/{videoToken}). - Корректная валидация Mini App
initData— двойной HMAC-SHA256 с ключом"WebAppData"иBOT_TOKEN, с проверкой свежестиauth_date. - Конструктор inline-клавиатур со всеми типами кнопок MAX:
callback,link,request_contact,request_geo_location,open_app,message,clipboard. - Middleware:
max.auth— валидация Mini App;max.webhook— проверка заголовкаX-Max-Bot-Api-Secret;max.admin— проверка списка администраторов.
- Artisan-команды:
max:test,max:set-webhook,max:webhook-info,max:delete-webhook. - Очереди:
SendMessageJob,SendBroadcastJob(с учётом 30 rps лимита). - Типизированные DTO:
User,Chat,Message,Update,Callback,BotCommand. - Расширенное исключение
MaxExceptionсgetStatusCode(),getErrorCode(),getResponse().
Установка
composer require letoceiling-coder/max
Публикация конфига (необязательно — пакет работает с дефолтами):
php artisan vendor:publish --tag=max-config
Базовый .env:
MAX_BOT_TOKEN=your_bot_token_here MAX_WEBHOOK_URL=https://your-domain.com/api/max/webhook MAX_WEBHOOK_SECRET=some_long_secret_ABCdef_123 MAX_UPDATE_TYPES=message_created,message_callback,bot_started MAX_MINI_APP_URL=https://your-domain.com MAX_BOT_USERNAME=your_bot_username MAX_ADMIN_IDS=123456789,987654321
Быстрый старт
Отправка сообщения
use LetoceilingCoder\Max\Max; Max::send(123456789, 'Привет!'); Max::bot()->sendMessage(123456789, '**Жирный** текст', ['format' => 'markdown']); Max::sendToUser(42, 'Сообщение пользователю напрямую');
Клавиатура
use LetoceilingCoder\Max\Max; $kb = Max::keyboard() ->row() ->callback('Кнопка 1', 'btn1') ->callback('Кнопка 2', 'btn2') ->row() ->link('Открыть сайт', 'https://example.com') ->openApp('Открыть Mini App', 'https://app.example.com') ->row() ->clipboard('Скопировать промокод', 'PROMO2025') ->get(); Max::bot()->sendMessage($chatId, 'Выберите:', ['attachments' => [$kb]]);
Mini App
use LetoceilingCoder\Max\Max; $initData = $request->header('X-Max-Init-Data'); if (Max::validateMiniApp($initData)) { $user = Max::getMiniAppUser($initData); $userId = $user['id']; }
Или через готовый middleware:
// routes/api.php Route::middleware(['max.auth'])->group(function () { Route::post('/api/me', function (\Illuminate\Http\Request $r) { return $r->input('max_user'); }); });
Webhook
use LetoceilingCoder\Max\Max; Max::bot()->subscribe( url: 'https://your-domain.com/api/max/webhook', updateTypes: ['message_created', 'message_callback', 'bot_started'], secret: env('MAX_WEBHOOK_SECRET'), );
Контроллер обработчика:
use LetoceilingCoder\Max\Types\Update; public function handle(\Illuminate\Http\Request $request) { $update = Update::fromArray($request->all()); if ($update->isMessageCreated() && $update->message?->hasText()) { // ... } if ($update->isCallback() && $update->callback) { \LetoceilingCoder\Max\Max::bot()->answerCallback( $update->callback->callbackId, ['notification' => 'Готово'] ); } return response()->json(['success' => true]); }
На защиту маршрута добавьте middleware max.webhook.
Загрузка файлов (двухэтапная)
use LetoceilingCoder\Max\Max; $result = Max::bot()->uploadImage('/path/to/photo.jpg'); Max::bot()->sendMessage($chatId, 'Фото', [ 'attachments' => [[ 'type' => 'image', 'payload' => ['token' => $result['token']], ]], ]);
Для видео/аудио токен возвращается сразу, изображение/файл — после фактической загрузки.
Deeplink
use LetoceilingCoder\Max\Max; $url = Max::deeplink('SupportBot', 'ref_summer2025'); // https://max.ru/SupportBot?start=ref_summer2025
Artisan-команды
php artisan max:test php artisan max:set-webhook https://example.com/webhook --types=message_created,bot_started --secret=... php artisan max:webhook-info php artisan max:delete-webhook
Основные классы
| Класс | Назначение |
|---|---|
LetoceilingCoder\Max\Max |
Статический фасад |
LetoceilingCoder\Max\Bot |
HTTP-обёртка над Bot API |
LetoceilingCoder\Max\MiniApp |
Валидация initData |
LetoceilingCoder\Max\Keyboard |
Конструктор клавиатур |
LetoceilingCoder\Max\Limits |
Константы лимитов |
LetoceilingCoder\Max\Validator |
Автовалидация данных |
LetoceilingCoder\Max\Types\* |
DTO (User, Chat, Message, Update, Callback, BotCommand) |
Обработка ошибок
use LetoceilingCoder\Max\Exceptions\MaxException; try { Max::send($chatId, 'Hello'); } catch (MaxException $e) { report($e); if ($e->isRateLimited()) { // 429 } logger()->error('Max API', [ 'status' => $e->getStatusCode(), 'code' => $e->getErrorCode(), 'message' => $e->getMessage(), 'body' => $e->getResponse(), ]); }
Документация
- src/README.md — полный справочник методов
- src/SETUP.md — установка и настройка
- src/LIMITS.md — лимиты и валидация
- src/EXAMPLES.md — примеры использования
- src/FEATURES.md — список всех возможностей пакета
- CHANGELOG.md — история изменений
Тесты
composer install
composer test
Текущий статус: 22 теста, 180 проверок, все проходят (PHPUnit 11, PHP 8.3).
Лицензия
MIT — см. LICENSE.
letoceiling-coder/max 适用场景与选型建议
letoceiling-coder/max 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 6 次下载、GitHub Stars 达 2, 最近一次更新时间为 2025 年 12 月 17 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「api」 「bot」 「laravel」 「Messenger」 「max」 「mini-app」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 letoceiling-coder/max 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 letoceiling-coder/max 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 letoceiling-coder/max 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dialogflow php sdk
Laravel 5.6 Monolog custom telegram channel
A PSR-7 compatible library for making CRUD API endpoints
Alfabank REST API integration
VK driver for botman
Telegram bot integration with laravel
统计信息
- 总下载量: 6
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 21
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-12-17