PHPackages                             alexwebprog/laravel-notification-channel-max - 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. [Mail &amp; Notifications](/categories/mail)
4. /
5. alexwebprog/laravel-notification-channel-max

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

alexwebprog/laravel-notification-channel-max
============================================

MAX Messenger notification channel for Laravel

v1.0.0(1mo ago)018—0%MITPHPPHP ^8.2

Since Mar 17Pushed 1mo agoCompare

[ Source](https://github.com/AlexWebProg/laravel-notification-channel-max)[ Packagist](https://packagist.org/packages/alexwebprog/laravel-notification-channel-max)[ Docs](https://github.com/AlexWebProg/laravel-notification-channel-max)[ RSS](/packages/alexwebprog-laravel-notification-channel-max/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (5)Versions (5)Used By (0)

MAX Notification Channel для Laravel
====================================

[](#max-notification-channel-для-laravel)

Канал уведомлений Laravel для мессенджера [MAX](https://max.ru).

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

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

```
composer require alexwebprog/laravel-notification-channel-max
```

Добавьте токен бота в `.env`:

```
MAX_BOT_TOKEN=your-bot-token-here
```

Опционально опубликуйте конфиг:

```
php artisan vendor:publish --tag=max-notification-config
```

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

[](#использование)

### 1. Добавьте роутинг в модель

[](#1-добавьте-роутинг-в-модель)

```
class User extends Authenticatable
{
    use Notifiable;

    /**
     * Куда отправлять уведомления MAX.
     */
    public function routeNotificationForMax(): int|array
    {
        // Вариант A: отправка пользователю по user_id
        return $this->max_user_id;

        // Вариант B: отправка в чат
        // return ['chat_id' => $this->max_chat_id];
    }
}
```

### 2. Создайте уведомление

[](#2-создайте-уведомление)

```
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("Оплата получена: {$this->invoice->amount} ₽")
            ->markdown()
            ->inlineKeyboard([
                [
                    ['type' => 'link', 'text' => 'Открыть счёт', 'url' => $this->invoice->url],
                ],
            ]);
    }
}
```

### 3. Отправьте

[](#3-отправьте)

```
$user->notify(new InvoicePaid($invoice));
```

API — MaxMessage
----------------

[](#api--maxmessage)

МетодОписание`::create(?string $text)`Статический конструктор`->text(string $text)`Текст сообщения (до 4000 символов)`->to(int $userId)`Отправить пользователю`->toChat(int $chatId)`Отправить в чат`->markdown()`Формат Markdown`->html()`Формат HTML`->silent()`Без уведомления участникам чата`->disableLinkPreview()`Отключить превью ссылок`->inlineKeyboard(array $buttons)`Добавить инлайн-клавиатуру`->attachment(array $attachment)`Добавить произвольное вложение`->replyTo(string $messageId)`Ответить на сообщение`->forward(string $messageId)`Переслать сообщение`->photo(string $filePath)`Загрузить и прикрепить изображение`->video(string $filePath)`Загрузить и прикрепить видео`->audio(string $filePath)`Загрузить и прикрепить аудио`->file(string $filePath)`Загрузить и прикрепить файл`->send()`Отправить сообщение напрямую (без Notification)Прямая отправка из кода
-----------------------

[](#прямая-отправка-из-кода)

Помимо стандартного механизма Laravel Notifications, можно отправлять сообщения напрямую — из контроллеров, job'ов, console command'ов и любого другого места.

### Вариант 1: Цепочка с `->send()`

[](#вариант-1-цепочка-с--send)

Самый компактный способ — вызов `->send()` в конце цепочки:

```
use NotificationChannels\Max\MaxMessage;

MaxMessage::create('Здравствуйте! Нажмите кнопку ниже.')
    ->to(123456)
    ->inlineKeyboard([
        [
            ['type' => 'request_contact', 'text' => 'Отправить мой номер телефона'],
        ],
    ])
    ->send();
```

### Вариант 2: Через MaxApi (dependency injection)

[](#вариант-2-через-maxapi-dependency-injection)

Если нужен контроль над ответом или вы предпочитаете явное внедрение зависимостей:

```
use NotificationChannels\Max\MaxApi;
use NotificationChannels\Max\MaxMessage;

public function sendWelcome(MaxApi $api): void
{
    $message = MaxMessage::create('Добро пожаловать!')
        ->to($user->max_user_id);

    $response = $api->sendMessage($message);
}
```

### Вариант 3: Через контейнер

[](#вариант-3-через-контейнер)

В местах, где DI недоступен (замыкания, статические методы):

```
app(MaxApi::class)->sendMessage($message);
```

Медиафайлы
----------

[](#медиафайлы)

Методы `->photo()`, `->video()`, `->audio()` и `->file()` автоматически загружают файл на серверы MAX и прикрепляют его к сообщению. Достаточно передать путь к файлу:

```
// Изображение с текстом и кнопкой
MaxMessage::create('Расчёт стоимости ремонта')
    ->toChat(-123456)
    ->photo(storage_path('app/images/banner.jpg'))
    ->inlineKeyboard([
        [
            ['type' => 'link', 'text' => 'Рассчитать стоимость', 'url' => 'https://example.com/calc'],
        ],
    ])
    ->send();
```

```
// Отправка документа пользователю
MaxMessage::create('Ваш отчёт готов')
    ->to($user->max_user_id)
    ->file(storage_path('app/reports/report.pdf'))
    ->send();
```

```
// Видео
MaxMessage::create('Видеоинструкция')
    ->toChat($chatId)
    ->video(storage_path('app/videos/tutorial.mp4'))
    ->send();
```

Поддерживаемые форматы: изображения (JPG, PNG, GIF, TIFF, BMP, HEIC), видео (MP4, MOV, MKV, WEBM), аудио (MP3, WAV, M4A), файлы (любые). Максимальный размер — 4 ГБ.

> **Примечание:** после загрузки больших файлов может потребоваться небольшая пауза перед отправкой — сервер MAX обрабатывает файл асинхронно. Если получаете ошибку `attachment.not.ready`, повторите отправку через несколько секунд.

Пример: кнопки
--------------

[](#пример-кнопки)

```
MaxMessage::create('Выберите действие:')
    ->inlineKeyboard([
        // Первый ряд
        [
            ['type' => 'callback', 'text' => 'Подтвердить', 'payload' => 'confirm'],
            ['type' => 'callback', 'text' => 'Отмена', 'payload' => 'cancel'],
        ],
        // Второй ряд
        [
            ['type' => 'link', 'text' => 'Подробнее', 'url' => 'https://example.com'],
        ],
    ]);
```

Пример: тихая отправка с HTML-форматированием
---------------------------------------------

[](#пример-тихая-отправка-с-html-форматированием)

```
MaxMessage::create('Внимание! Обновление системы в 03:00')
    ->html()
    ->silent();
```

Лицензия
--------

[](#лицензия)

MIT

###  Health Score

41

—

FairBetter than 89% of packages

Maintenance89

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~0 days

Total

4

Last Release

56d ago

Major Versions

v0.1.2 → v1.0.02026-03-17

### Community

Maintainers

![](https://www.gravatar.com/avatar/54ba26f43671c2b1ac1fdf20af43a9170e87c1e8ace9dc3b45ca5da50d22d18c?d=identicon)[AlexWebProg](/maintainers/AlexWebProg)

---

Top Contributors

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

---

Tags

laravelnotificationsMessengermaxmax.ru

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alexwebprog-laravel-notification-channel-max/health.svg)

```
[![Health](https://phpackages.com/badges/alexwebprog-laravel-notification-channel-max/health.svg)](https://phpackages.com/packages/alexwebprog-laravel-notification-channel-max)
```

###  Alternatives

[laravel/slack-notification-channel

Slack Notification Channel for laravel.

89069.7M111](/packages/laravel-slack-notification-channel)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)[tzsk/sms

A robust and unified SMS gateway integration package for Laravel, supporting multiple providers.

320244.3k6](/packages/tzsk-sms)

PHPackages © 2026

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