Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас Реклама
Новини 30 червня 2026

Laravel WhatsApp: Два Бекенди За Одним Фасадом

Laravel WhatsApp - це пакет від Md Mostafijur Rahman для надсилання та отримання WhatsApp-повідомлень із Laravel-застосунків. Його особливість полягає у підтримці двох способів комунікації з WhatsApp: через офіційний Cloud API Meta для бізнес-повідомлень та через неофіційний Node-сервіс whatsapp-web.js, який використовує headless Chromium для роботи з тим самим WebSocket-протоколом, що й веб-версія WhatsApp для особистих акаунтів. Обидва бекенди працюють через єдиний фасад WhatsApp::, тому код застосунку не потребує знати, який саме обробляє конкретне повідомлення. Пакет підтримує Laravel 11, 12 і 13 на PHP 8.2 або новіших версіях.

Два бекенди для різних завдань

Два бекенди існують тому, що кожен добре справляється з різними задачами, і пакет чесно розповідає про компроміси. Cloud API - це офіційний шлях для шаблонних бізнес-повідомлень, але він обмежує довільні відповіді 24-годинним вікном і не підтримує групи. Веб-сервіс не має таких обмежень і може створювати групи, публікувати статуси та підключатися через QR-код, але працює з особистим акаунтом без офіційної підтримки.

Можливість Cloud API Web Sidecar
QR-підключення Ні Так
Групи Ні Так
Довільні повідомлення 24-год вікно Так
Бізнес-шаблони Так Ні
Офіційна підтримка Так Неофіційно

Надсилання через обидва бекенди

Найпростіший виклик маршрутизує текстове повідомлення. Формат одержувача визначає, куди воно піде: телефонний номер у форматі E.164 надсилається через Cloud API, тоді як ідентифікатор @c.us спрямовується до веб-сесії.

WhatsApp::send('+14155550123', 'Your Laravel News digest is ready to read.');
WhatsApp::send('14155550123@c.us', 'Thanks for subscribing to the newsletter!');

Для бізнес-повідомлень ви використовуєте підтримку шаблонів Cloud API безпосередньо, передаючи назву шаблону, локаль та компоненти параметрів:

WhatsApp::messages()->sendTemplate('+14155550123', 'issue_published', 'en_US', [
 ['type' => 'body', 'parameters' => [['type' => 'text', 'text' => 'Issue #312']]],
]);

Веб-бекенд відкриває операції, недоступні в Cloud API. Сесії мають назви, тому ви можете запускати кілька особистих акаунтів і звертатися до кожного за ім'ям:

WhatsApp::web('main')->groups()->create('Laracon Attendees', ['14155550123@c.us']);
WhatsApp::web('main')->messages()->sendImage('14155550123@c.us',
 ['url' => 'https://example.com/laracon-schedule.png', 'caption' => 'See you at the keynote!']);

Чергове надсилання та вхідні події

Вихідні повідомлення можна відправляти як Jobs через job SendMessage пакета, що переносить надсилання повідомлень із циклу запиту на ваші queue-воркери:

SendMessage::dispatch('+14155550123', 'New on Laravel News: this week in the ecosystem.');

Вхідні повідомлення від веб-сервісу інтегруються в систему подій Laravel. Процес whatsapp:web:listen, що працює тривалий час, спостерігає за Node-сервісом і генерує типізовані події, такі як MessageReceived, на які ви можете підписатися як на будь-яку іншу подію:

use \Kstmostofa\LaravelWhatsApp\Events\Web\MessageReceived;
Event::listen(MessageReceived::class,
 function ($event) {
 Log::info('Reader replied', ['from' => $event->from(), 'body' => $event->body()]);
 }
);

Cloud API обробляє вхідний трафік через вебхуки з верифікацією HMAC-підпису за допомогою секрету вашого Meta-застосунку.

Адмін-інтерфейс та рівень персистентності

Якщо ви встановите опціональні залежності Livewire та Flux, пакет монтує адмін-інтерфейс за адресою /whatsapp. Він включає дашборд, екран для обміну повідомленнями, представлення розмов у вигляді чат-бульбашок та сторінки для груп, контактів і журналів вебхуків. Якщо додати Laravel Reverb, представлення розмов оновлюються в реальному часі.

Персистентність включається через три Eloquent-моделі: WaSession, WaMessage та WaContact. Вони можуть працювати на окремому з'єднанні з базою даних, якщо ви хочете тримати WhatsApp-дані осторонь від основної схеми. Пакет також обробляє фонове мостування подій, моніторинг стану сесій та кешування аватарів і медіа.

Початок роботи

Встановіть пакет та опублікуйте його конфігурацію та міграції:

composer require kstmostofa/laravel-whatsapp
php artisan vendor:publish --tag=laravel-whatsapp-config
php artisan vendor:publish --tag=laravel-whatsapp-migrations
php artisan migrate

Для роботи з Cloud API потрібні ваші Meta-credentials в оточенні:

WHATSAPP_ACCESS_TOKEN=EAAG...
WHATSAPP_PHONE_NUMBER_ID=123456789012345
WHATSAPP_BUSINESS_ACCOUNT_ID=987654321098765
WHATSAPP_APP_SECRET=your-meta-app-secret
WHATSAPP_VERIFY_TOKEN=any-string-you-make-up

Веб-сервіс встановлюється та запускається через artisan-команди, після чого процес-слухач інтегрує його події назад в Laravel:

php artisan whatsapp:sidecar:install
php artisan whatsapp:sidecar:start
php artisan whatsapp:web:listen main &

Ви можете ознайомитися з вихідним кодом, повним довідником конфігурації та списком доступних команд на GitHub.

7

Читати в документації

Коментарі

Увійдіть, щоб залишити коментар

Будьте першим, хто залишить коментар!

Читайте також

PayZephyr
Новини 12 вересня 2026

PayZephyr: Єдиний API для роботи з Stripe, Paystack та PayPal

PayZephyr - Laravel-пакет від Nwaneri Chukwunyere Kenneth, який об'єднує вісім платіжних провайдерів під одним зручним API. Підтримує автоматичне перемикання, захист від подвійної оплати, підписки та повернення коштів.

2
Laravel Telescope
Новини 11 вересня 2026

Artisan-команди для дебагу в Laravel Telescope 5.24.0

Laravel Telescope 5.24.0 додає дві нові Artisan-команди для роботи із записами із терміналу. Тепер можна переглядати запити, винятки, джоби та запити до бази даних без відкриття веб-інтерфейсу, а також отримувати дані у форматі JSON для скриптів та AI-агентів.

3

Вакансії за темою

Гарант-Інфо
5 днів тому

Middle PHP Developer (Laravel)

Middle PHP Developer для міжнародного B2B-продукту у телекомунікаціях. Розробка нового функціоналу на PHP 8.x/Laravel, підтримка кодової бази, робота з REST API, платіжними інтеграціями та MySQL. Вимоги: 2+ років комерційного досвіду PHP, впевнене знання Laravel, ООП, SOLID, тестування (PHPUnit/Pest), Git, Docker.

Bitmotive LLC
11 днів тому

Fullstack Developer (Laravel + React)

Fullstack розробник для роботи над живими клієнтськими проєктами на Laravel API з React Native та Filament. Потрібна глибока експертиза в PHP/Laravel, компетенція в TypeScript/React, досвід роботи з PostgreSQL, AWS. Вимагається англійська B2+, тестова дисципліна, вміння швидко адаптуватися до різних стеків.

Full Stack Developer (PHP, React, Middle, Middle+)

Full Stack розробник для підтримки та розвитку аналітичного продукту перевірки контрагентів. Робота зі складною бізнес-логікою, базами даних та інтеграцією AI-рішень. Стек: PHP 8.x (Laravel/Symfony), React, MySQL, REST API. Вимоги: 3+ років комерційного досвіду, глибоке розуміння SQL, Git, Docker, CI/CD, Linux, OWASP.

Пакети за темою

Laravel Whatsapp

kstmostofa/laravel-whatsapp

Пакет Laravel з двома бекендами для WhatsApp: Meta Cloud API та вбудований whatsapp-web.js sidecar. Включає адміністративний інтерфейс на Livewire/Flux, чергові завдання, вебгуки з HMAC, моделі Eloquent, broadcasting та CLI-команди для управління життєвим циклом.

224 v1.0.3 13 5

Filament

filament/filament

Найпопулярніша адмін-панель для Laravel: ресурси, таблиці, форми та дашборди описуються PHP-класами поверх Livewire, Alpine і Tailwind. Замінює рутину CRUD-інтерфейсів декларативною конфігурацією.

31,852 v5.7.6 7