PHPackages                             rocketslab/wa-laravel - 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. rocketslab/wa-laravel

ActiveLibrary[API Development](/categories/api)

rocketslab/wa-laravel
=====================

Wrapper for Laravel to use WhatsApp Baileys Api

0.2.2(3y ago)9745[3 issues](https://github.com/RocketsLab/wa-laravel/issues)MITPHPPHP ^8.0.2

Since Mar 23Pushed 3y ago1 watchersCompare

[ Source](https://github.com/RocketsLab/wa-laravel)[ Packagist](https://packagist.org/packages/rocketslab/wa-laravel)[ RSS](/packages/rocketslab-wa-laravel/feed)WikiDiscussions main Synced 3d ago

READMEChangelogDependencies (2)Versions (7)Used By (0)

WhatsApp for Laravel
====================

[](#whatsapp-for-laravel)

\[PT-BR\] Este pacote adiciona o uso do whatsapp com Laravel. É um wrapper que se utiliza da api provida pela lib [@tiagoandrepro/baileys-api](https://github.com/tiagoandrepro/baileys-api), que simplifica o uso da lib [@adiwajshing/Baileys](https://github.com/adiwajshing/Baileys).

Instalação
----------

[](#instalação)

```
composer require rocketslab/wa-laravel
```

O service provider é registrado automáticamente no Laravel.

```
php artisan wa:install
```

O comando acima instala as dependências de javascript incluindo as libs mencionadas na introdução.

Opcionalmente você pode publicar o arquivo de configuração:

```
php artisan vendor:publish --provider=RocketsLab\\WALaravel\\WALaravelServiceProvider
```

Como esse pacote é fortemente dependente de websockets, tem incluído junto a lib [@beyondcode/laravel-websockets](https://github.com/beyondcode/laravel-websockets).

Iniciando os serviços
---------------------

[](#iniciando-os-serviços)

Será necessário inciar ambos servidores de **websocket** e a própria lib **baileys-api**

Por padrão o servidor de websocket escuta a porta **6001**. Pode-se utilizar outra porta e outras configurações do websocket, tudo isto está descrito na documentação do beyondcode/laravel-websockets. A configuração do websocket deve ser realizada como descrito na sua documentação.

Inciando o servidor de websocket:

```
php artisan websocket:serve
```

O próximo passo é iniciar o servidor do baileys-api.

```
php artisan wa:serve
```

Por padrão o servidor da API do WA, inicia a comunicação em localhost na porta 3333. Estas configurações podem ser alteradas no arquivo de configuração em `config/wa-laravel`.

Funcionamento
-------------

[](#funcionamento)

O funcionamento deste wrapper ocorre disparando eventos para sua aplicação notificando via **WebHooks** o que ocorreu no WhatsApp.

O pacote contém já um **EventSubscriber** e um **EventDispatcher**para lidar com os eventos gerados, mas se você quiser ter maior controle sobre estes eventos, pode desativar o registro automático dos eventos alterando o parâmetro `register_events` no arquivo de configuração `config/walaravel.php` para **false**.

### Lado do servidor

[](#lado-do-servidor)

Criando uma nova sessão:

```
    /* Com o servidor da API iniciado...
    // O segundo parâmetro é opcional. E informa a API
    */ que é uma versão legada do WA

    $wa = \RocketsLab\WALaravel\WhatsApp::factory();
    /* Recomenda-se remover a sessão existente */
    $wa->removeSession('session-id');
    $wa->startSession('session-id', false);
```

O retorno dos métodos é um `Http/Response` provido pelo cliente `Http`do Laravel.

Para enviar mensagens:

```
// No arquivo de rotas
Route::post('sendMessage', funciton(Request $request) {
    /* Pode-se extrair somente o necessário da requisição */
    $data = $request->only(['receiver', 'message', 'sessionId']);

    \RocketsLab\WALaravel\WhatsApp::factory()
        ->sendText(...$data);
})
```

### Lado cliente (Laravel Echo)

[](#lado-cliente-laravel-echo)

Configure o Laravel Echo conforme a [documentação](https://laravel.com/docs/9.x/broadcasting#client-side-installation).

Os hooks enviados pela API chegam na forma de requisições POST para o servidor, esse pacote já tem estas rotas pré configuradas e para cada hook recebido é disparado um evento do lado do servidor, e este evento é feito um broadcast com os dados recebidos pelo evento.

Para que o cliente/browser possa receber estes eventos e processar a informação, precisa-se escutar um canal específico em `walaravel.{id-da-sessão}`.

Os eventos que podem ser escutados no momento são:

EventoDescrição.connection-openOcorre quando uma sessão foi estabelecida com sucesso..connection-closedOcorre quando a conexão foi interrompida (logout)..connection-connectingOcorre quando se lê o QRCode e inicia-se a autenticação..connnection-qrcodeOcorre quando um QRCode é gerado para ser lido..connection-updatedOcorre quando há alguma atualização na conexão (WIP)..message-upsertOcorre quando há novas atualizações em mensagens e notificações.#### Segue um pequeno exemplo:

[](#segue-um-pequeno-exemplo)

Alterações no arquivo de layout (app.blade.php)...

> No head do layout precisamos remover o link para o `app.js` e passar esse link para o final do body do layout.

```

    ....

    ...

    @stack('scripts')

```

Carregando a view...

> Na rota que carrega a view pode-se passar um atributo `$sessionId`para identificar a sessão que vai receber os eventos, dessa forma se outro evento de outra sessão for enviado esse será descartado.

```
Route::get('whatsapp-config', function() {

   $sessionId = 'my-session';
   return view('wa-config', compact('sessionId'));

});
```

Colocando o Echo para escutar os eventos da sessão `my-session`...

> Em alguma view blade coloque o bloco @push ao final. O `$sessionId` aqui do exemplo é recebida como retorno ao carregar a view, pode ser estático ou vindo de um banco de dados.

```

@push('scripts')

        Echo.channel('{{ ".meesage-upsert.{$sessionId}" }}')
            .listen('.message-upsert', ({ event }) => {
                console.log("MU: " + JSON.stringify(event))
            });

@endpush
```

**Continua...**

---

*Esta documentação está em WIP, assim como este pacote.*

Qualquer dúvida ou sugestão por favor contate-nos via:

[oi@rocketslab.com.br](oi@rocketslab.com.br)

Criado por [jjsquady](https://github.com/jjsquady)

Colaborador [tiagoandre](https://github.com/tiagoandrepro)

@2022 RocketsLab

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity48

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 ~12 days

Total

6

Last Release

1452d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/eaa735041f66903d9a2873f2e524f9133eae6961f9b9d068510591ba20095dd5?d=identicon)[jjsquady](/maintainers/jjsquady)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/rocketslab-wa-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/rocketslab-wa-laravel/health.svg)](https://phpackages.com/packages/rocketslab-wa-laravel)
```

###  Alternatives

[darkaonline/l5-swagger

OpenApi or Swagger integration to Laravel

2.9k34.0M112](/packages/darkaonline-l5-swagger)[echolabsdev/prism

A powerful Laravel package for integrating Large Language Models (LLMs) into your applications.

2.3k388.3k10](/packages/echolabsdev-prism)[sburina/laravel-whmcs-up

WHMCS API client and user provider for Laravel

271.3k](/packages/sburina-laravel-whmcs-up)

PHPackages © 2026

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