PHPackages                             max-messenger-bot/max-bot-api-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. max-messenger-bot/max-bot-api-php

ActiveLibrary[API Development](/categories/api)

max-messenger-bot/max-bot-api-php
=================================

Max messenger Bot &amp; Api

221PHP

Since Apr 3Pushed 1mo ago1 watchersCompare

[ Source](https://github.com/max-messenger-bot/max-bot-api-php)[ Packagist](https://packagist.org/packages/max-messenger-bot/max-bot-api-php)[ RSS](/packages/max-messenger-bot-max-bot-api-php/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Max Bot &amp; Max API Client For PHP
====================================

[](#max-bot--max-api-client-for-php)

Этот пакет предназначен для работы с Max API в полностью объектно-ориентированном формате. Все запросы, ответы и обновления сервера представлены в строго типизированном объектном виде, никаких array shapes (object-like arrays).

Весь задокументированный функционал реализован, включая возможность возобновления загрузки файлов.

**Актуальность:** 5 апреля 2026 г.

```
use MaxMessenger\Bot\MaxApiClient;

$apiClient = new MaxApiClient('your-access-token');

$apiClient->sendMessageToUser(12345678, 'Привет');
```

```
use MaxMessenger\Bot\MaxBot;
use MaxMessenger\Bot\MaxBot\Events\BotStartedEvent;
use MaxMessenger\Bot\MaxBot\Events\MessageCreatedEvent;

$bot = new MaxBot('your-access-token', 'your-secret');

$bot->onBotStarted(function (BotStartedEvent $event): void {
    $event->sendToChat(sprintf('Здравствуйте, %s!', $event->getUser()->getFirstName());
});

$bot->onMessageCreated(function (MessageCreatedEvent $event): void {
    $message = $event->getMessage()->getText();
    // Обработка сообщения
    $event->reply('Ваше сообщение получено.', true)
});

$bot->handleFromGlobal();
```

Warning

По поводу ошибок в клиенте, пожалуйста обращайтесь ко мне напрямую:

- Max: [Евгений](https://max.ru/u/f9LHodD0cOID7ezkLpMv_5wNX9YmRCmk-0bp4q1uWCRtrdClF9F21Buxhyk)
- Telegram: [mj4444ru](https://t.me/mj4444ru)

Note

Вы можете заметить некоторые отличия реализации от официальной документации. На самом деле, официальная документация может содержать неточности или иметь дублирующиеся способы получения данных.

Некоторые недокументированные в официальном API функции могут быть отключены на стороне Max. Когда они писались и тестировались, они работали.

Если вы думаете, что этот пакет слишком сложный
-----------------------------------------------

[](#если-вы-думаете-что-этот-пакет-слишком-сложный)

1. Если Вам нужно просто отправить сообщение, то никакие пакеты Вам не нужны, просто прочитайте главу **Отправка сообщений используя curl** в разделе [Отправка сообщений](docs/Examples/SendingMessages.md).
2. Если Вам нужно что-то ещё, прочитайте раздел [Очень простой бот](docs/VerySimpleBot.md).

Основные особенности
--------------------

[](#основные-особенности)

- Это полностью объектно-ориентированный клиент без array shapes (object-like arrays).
- Для работы с клиентом не требуется изучение официального API.
- В большинстве случаев для понимания работы, Вам достаточно будет посмотреть [примеры кода](./docs/Examples/README.md).
- Есть валидация данных в моделях запросов (можно отключить).
- Реализована загрузка файлов на сервера обоими поддерживаемыми способами.
- Имеются утилиты (скрипты) для тестирования и отладки обработки обновлений.
- Весь функционал разбит на слои (бот, API Max клиент, Http клиент для API Max, Curl Http клиент), каждый слой может быть частично или полностью заменён Вашей реализацией (используются интерфейсы и многие внутренние методы объявлены как публичные).
- Код реализован с возможностью написания тестов для любой части Вашего кода.
    - API Max клиент реализован на основе официальной документации API Max в формате `yaml`.
        - Объектная модель, имена моделей, имена параметров, документирование сохранены.
        - Дополнительно добавлено множество методов, упрощающих работу с API.

Документация в коде
-------------------

[](#документация-в-коде)

I believe that in-code documentation should be in English. However, due to a lack of resources to translate the documentation into English, the in-code documentation is presented in Russian.

Я считаю, что документация в публичном коде должна быть на английском языке. Однако из-за нехватки ресурсов для перевода документации на английский язык, документация в коде представлена на русском языке.

Установка
---------

[](#установка)

```
composer require max-messenger-bot/max-bot-api-php
```

### Требования

[](#требования)

- PHP 8.2+
- Расширение `ext-mbstring`

### Зависимости

[](#зависимости)

- `mj4444/simple-http-client` ^0.2.1 — HTTP-клиент для выполнения запросов

Примеры
-------

[](#примеры)

Больше примеров смотрите в документации в разделе [примеры](docs/Examples/README.md).

### Обработка обновлений через Webhook (основной метод)

[](#обработка-обновлений-через-webhook-основной-метод)

```
use MaxMessenger\Bot\MaxBot;
use MaxMessenger\Bot\MaxBot\Events\BotStartedEvent;
use MaxMessenger\Bot\MaxBot\Events\MessageCreatedEvent;

$bot = new MaxBot('your-access-token', 'your-secret');

// Добавление обработчика команды
$bot->getCommandHandler()
    ->onCommand('start', function (MessageCreatedEvent $event): bool {
        // Обработка команды /start
        return true;
    });

// Добавление обработчика присоединения нового пользователя
$bot->onBotStarted(function (BotStartedEvent $event): bool {
    // Обработка события
    return true;
});

// Добавление обработчика сообщений
$bot->onMessageCreated(function (MessageCreatedEvent $event): bool {
    // Обработка нового сообщения
    $event->reply('Ваше сообщение получено', true)
    return true;
});

$apiClient->handleFromGlobal();
```

### Обработка обновлений через Long Polling

[](#обработка-обновлений-через-long-polling)

```
use MaxMessenger\Bot\MaxBot;

$bot = new MaxBot('your-access-token', 'your-secret');

// Добавление обработчиков

// Запуск обработки обновлений с сервера
$marker = null;
while (true) {
    $marker = $bot->handleFromServer(marker: $marker);
    usleep(100000);
}
```

### Отправка сообщений

[](#отправка-сообщений)

#### Отправка простого сообщения

[](#отправка-простого-сообщения)

```
use MaxMessenger\Bot\MaxApiClient;

$apiClient = new MaxApiClient('your-access-token');

$apiClient->sendMessageToUser(12345678, 'Привет');
```

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

[](#отправка-сообщения-с-кнопкой)

```
use MaxMessenger\Bot\MaxApiClient;
use MaxMessenger\Bot\Models\Requests\NewMessageBody;

$apiClient = new MaxApiClient('your-access-token');

$message = NewMessageBody::make('Сообщение с клавиатурой');
$message->addInlineKeyboard()->addLinkButton('Документация', 'https://dev.max.ru/docs-api');
$apiClient->sendMessageToUser(12345678, $message);
```

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

[](#отправка-сообщения-с-файлом)

```
use MaxMessenger\Bot\MaxApiClient;
use MaxMessenger\Bot\Models\Requests\NewMessageBody;
use MaxMessenger\Bot\Uploaders\Contents\File;

$apiClient = new MaxApiClient('your-access-token');

$uploader = $apiClient->getSimpleUploader();
$fileToken = $uploader->uploadFile(new File(__FILE__));

// Задержка, чтобы сервера Max обработали файл (нужна только для некоторых типов вложений).
// При её отсутствии, api-клиент может делать повторные запросы, если вложение не готово.
sleep(1);

$message = NewMessageBody::new()
    ->addFileAttachment($fileToken);
$apiClient->sendMessageToUser(12345678, $message);
```

#### Загрузка файла частями

[](#загрузка-файла-частями)

```
use MaxMessenger\Bot\Uploaders\Contents\File;
use MaxMessenger\Bot\Uploaders\FragmentUploadStat;

$uploader = $apiClient->getUploader();
$uploader->setProgressCallback(static function (string $postName, FragmentUploadStat $stat): void {
    echo sprintf(
        "=== %s === frag-offset: %d, frag-length: %d, file-size: %d, time: %s\n",
        $postName,
        $stat->offset,
        $stat->length,
        $stat->size,
        number_format($stat->time, 2)
    );
});

$fileToken = $uploader->uploadFile(new File(__FILE__, 'Файл.txt'));
```

Документация
------------

[](#документация)

- [Начало работы](docs/GettingStarted.md)
- [Список документации](docs/README.md)

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance60

Regular maintenance activity

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity11

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/95adc63b893241604860f7db48dafdbdd3db24e4040a04330e77ffbcc77e60c0?d=identicon)[mj4444](/maintainers/mj4444)

---

Top Contributors

[![mj4444ru](https://avatars.githubusercontent.com/u/9354685?v=4)](https://github.com/mj4444ru "mj4444ru (1 commits)")

### Embed Badge

![Health badge](/badges/max-messenger-bot-max-bot-api-php/health.svg)

```
[![Health](https://phpackages.com/badges/max-messenger-bot-max-bot-api-php/health.svg)](https://phpackages.com/packages/max-messenger-bot-max-bot-api-php)
```

###  Alternatives

[stripe/stripe-php

Stripe PHP Library

4.0k143.3M480](/packages/stripe-stripe-php)[twilio/sdk

A PHP wrapper for Twilio's API

1.6k92.9M272](/packages/twilio-sdk)[facebook/php-business-sdk

PHP SDK for Facebook Business

90821.9M34](/packages/facebook-php-business-sdk)[meilisearch/meilisearch-php

PHP wrapper for the Meilisearch API

74513.7M114](/packages/meilisearch-meilisearch-php)[google/gax

Google API Core for PHP

265103.1M454](/packages/google-gax)[google/common-protos

Google API Common Protos for PHP

173103.7M50](/packages/google-common-protos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
