bushlanov-dev/max-bot-api-client-php

Max Bot API Client library

1.1.0 2025-08-21 16:24 UTC

This package is auto-updated.

Last update: 2025-08-22 19:49:40 UTC


README

Actions status Coverage Packagist Version PHP version Laravel Software License

Caution

На мой взгляд Max Messenger является ни чем иным как малварью, созданной для слежки за гражданами РФ. Настоятельно не рекомендую использовать его на реальных устройствах, с настоящим номером телефона, и для личной переписки.

Быстрый старт

Если вы новичок, то можете прочитать официальную документацию, написанную разработчиками Max.

Получение токена

Откройте диалог с MasterBot, следуйте инструкциям и создайте нового бота. После создания бота MasterBot отправит вам токен.

Установка библиотеки

composer require bushlanov-dev/max-bot-api-client-php

Пользователи Laravel могут зарегистрировать сервис провайдер и фасад в config/app.php:

'providers' => [
    // ...
    BushlanovDev\MaxMessengerBot\Laravel\MaxBotServiceProvider::class,
],
// ...
'aliases' => [
    // ...
    'MaxBot' => BushlanovDev\MaxMessengerBot\Laravel\MaxBotFacade::class,
],

Использование

Отправка сообщения с клавиатурой

require __DIR__.'/vendor/autoload.php';

use BushlanovDev\MaxMessengerBot\Api;

$api = new Api('YOUR_BOT_API_TOKEN');

// Загрузка файла
$fileAttachmentRequest = $api->uploadAttachment(
    type: UploadType::File,
    filePath: __DIR__ . '/test.pdf',
);

$api->sendMessage(
    userId: 123,     // ID пользователя получателя сообщения
    chatId: 321,     // Или ID чата, в который нужно отправить сообщение
    text: 'Привет!', // Текст сообщения, вы можете использовать HTML или Markdown
    attachments: [
        $fileAttachmentRequest,
        new InlineKeyboardAttachmentRequest([
            [new CallbackButton('Нажми меня!', 'payload_button1')],
            [new LinkButton('Нажми меня!', 'https://example.com')],
        ]),
    ],
    format: MessageFormat::Markdown, // Формат сообщения (Markdown или HTML)
);

Отправка сообщения с использованием фасада Laravel

MaxBot::sendUserMessage(123456, 'Привет из Laravel!');

Создание универсального обработчика обновлений

$dispatcher = $api->getUpdateDispatcher();

$dispatcher->onMessageCreated(function (MessageCreatedUpdate $update, Api $api) {
    $api->sendMessage(
        userId: $update->message->recipient->userId,
        text: 'Привет!',
    );
});
// или
$dispatcher->addHandler(UpdateType::BotStarted, function (BotStartedUpdate $update, Api $api) {
    $api->sendMessage(
        chatId: $update->chatId,
        text: 'Я запущен!',
    );
});

Подписка на вэб хуки

$api->subscribe(
    url: 'https://example.com/webhook', // URL на который будут приходить хуки
    secret: 'super_secret',             // Секретная фраза для проверки хуков
    updateTypes: [
        // Типы хуков которые вы хотите получать (либо ничего не указывать, чтобы получать все)
        UpdateType::BotStarted,
        UpdateType::MessageCreated,
    ],
);

Обработка обновлений

$handler = $api->createWebhookHandler('super_secret'); // Обновления через вебхук
// ИЛИ
$handler = $api->createLongPollingHandler();           // Обновления через лонгполлинг

$handler->handle();

ℹ️ С полной документацией вы можете ознакомиться тут.

Реализованные методы

Bots

Chats

Subscriptions

Upload

Messages

Лицензия

Данная библиотека распространяется под лицензией MIT - подробности см. в файле LICENSE.