Download the PHP package webtolk/max without Composer
On this page you can find all versions of the php package webtolk/max. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Package max
Short Description Pure Composer SDK for MAX Platform API
License MIT
Homepage https://web-tolk.ru
Informations about the package max
MAX PHP SDK
webtolk/max — framework-agnostic PHP SDK для MAX Platform API с архитектурой facade + modules + request objects + entities.
Что умеет SDK
- работать на PHP
8.1+ - принимать любой PSR-18 HTTP client
- использовать PSR-17
RequestFactoryInterfaceиStreamFactoryInterface - отдавать типизированные модули
bots,chats,messages,uploads,subscriptions,updates - сериализовать payload/query объекты без ручной сборки массивов по всему проекту
- гидрировать ответы API в entity-объекты вместо сырых массивов
Установка
Минимальная установка самой библиотеки:
Установка вместе со всеми необходимыми библиотеками. HTTP-клиент может быть любой: Guzzle, Joomla, Symfony и т.д.
Runtime requirements:
php >= 8.1ext-jsonext-mbstringext-pcre
Важно: SDK не создаёт transport сам. До первого вызова любого модуля нужно передать HTTP client и PSR-17 фабрики через Max::setTransport().
Quick Start
Пример ниже показывает типичный старт с Joomla HTTP Client.
Как это устроено
MaxConfigхранит токен и дополнительные HTTP headers.Max::setTransport()создаёт внутренний transport adapter.- Фасад
Maxотдаёт модуль:bots(),chats(),messages(),uploads(),subscriptions()илиupdates(). - Модуль вызывает соответствующий request object.
- Ответ MAX API гидрируется в entity-объект SDK.
Основные возможности
Bots
bots()->me()— получить профиль текущего ботаbots()->updateCommands()— заменить список команд бота (до 32 команд)
Chats
chats()->list()— compatibility-методGET /chats: changelog MAX объявляет его неподдерживаемым, но 2026-08-31 live API всё ещё возвращает список; для новых интеграций надёжнее сохранятьchat_idиз webhook eventschats()->getById()— карточка чатаchats()->getByLink()— карточка публичного канала по совместимой публичной ссылке каналаchats()->members()— участникиchats()->memberMe()— текущий участникchats()->admins()— администраторыchats()->update()— изменение названия, описания, иконки и pinned messagechats()->delete()— compatibility-удаление чата; endpoint принял безопасный live-запрос 2026-08-31, но отсутствует в части официальной навигацииchats()->getPinnedMessage()— чтение закреплённого сообщенияchats()->pin()— закрепление сообщенияchats()->unpin()— снятие закрепленияchats()->addMembers()— добавление участниковchats()->removeMember()— удаление участникаchats()->leave()— выход бота из чатаchats()->addAdmins()— назначение администраторовchats()->removeAdmin()— снятие прав администратораchats()->sendAction()— отправка typing/photo/video/audio/file/seen action
Messages
messages()->sendToChat()— отправка в чатmessages()->sendToUser()— отправка пользователюmessages()->getById()— чтение черезGET /messages/{messageId}messages()->getByQueryId()— совместимое чтение черезGET /messages?message_ids[]=...messages()->list()— выборка сообщенийmessages()->edit()— редактированиеmessages()->delete()— удалениеmessages()->sendComment()— отправка комментария к посту каналаmessages()->listComments()— список комментариев к постуmessages()->getComment()— чтение отдельного комментарияmessages()->editComment()— редактирование комментарияmessages()->deleteComment()— удаление комментарияmessages()->answerCallback()— callback answer с optionaldisable_link_preview
Uploads
uploads()->create()— получить upload URLuploads()->getVideo()— получить метаданные видео по токенуuploads()->pushBinary()— отправить бинарные данные на upload host поUploadUrl, полученному изuploads()->create()uploads()->upload()— пройти весь upload flow одним вызовом
Subscriptions и Updates
subscriptions()->list(),create(),delete()updates()->list()для long polling
JSON Schemas
Публичный репозиторий содержит обезличенный schema pack:
docs/api-schemas/index.jsondocs/api-schemas/methods/*.schema.json
Эти файлы нужны как публичный reference layer для формы запросов и ответов. Все чувствительные значения в schema/examples маскируются как XXXX.
Что важно учитывать
- До вызова
setTransport()модули использовать нельзя. - По умолчанию SDK использует
https://platform-api2.max.ru. messages()->getById()использует прямой endpointGET /messages/{messageId}.- Для старого query-based lookup используйте
messages()->getByQueryId(). - Для channel posts не передавайте
NewMessageBody::withNotify(false): live smoke на канале вернулerrors.send-message.channel-notify; без поляnotifyотправка постов, кнопок и вложений проходит. - Для
audioиvideoпосле успешной загрузки возможен временныйattachment.not.ready. - Для
messages.answerCallback()в публичном schema pack уже есть подтверждённый success example. - События комментариев можно передавать в
GetUpdatesQuery::withTypes()иCreateSubscriptionPayloadстрокамиcomment_created,comment_editedиcomment_removed.
Тестирование
В публичном репозитории сохранены:
- unit tests в
tests/Unit/** - PHPUnit config в
phpunit.xml - обезличенные API schemas в
docs/api-schemas/**
Запуск unit tests:
Документация
- Индекс документации
- Быстрый старт
- Интеграция с Joomla HTTP Client
- Типовые сценарии
- Фасад и методы модулей
- Payload-объекты
- Attachment-объекты
- Query-объекты
- Сущности
- Ошибки и edge cases
- Тестирование
- Обезличенные ответы MAX API
All versions of max with dependencies
ext-json Version *
ext-mbstring Version *
ext-pcre Version *
psr/http-client Version ^1.0
psr/http-factory Version ^1.0
psr/http-message Version ^1.1|^2.0
psr/log Version ^1.1 || ^2.0 || ^3.0