Download the PHP package rocketslab/wa-laravel without Composer
On this page you can find all versions of the php package rocketslab/wa-laravel. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download rocketslab/wa-laravel
More information about rocketslab/wa-laravel
Files in rocketslab/wa-laravel
Package wa-laravel
Short Description Wrapper for Laravel to use WhatsApp Baileys Api
License MIT
Informations about the package wa-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, que simplifica o uso da lib @adiwajshing/Baileys.
Instalação
O service provider é registrado automáticamente no Laravel.
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:
Como esse pacote é fortemente dependente de websockets, tem incluído junto a lib @beyondcode/laravel-websockets.
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:
O próximo passo é iniciar o servidor do baileys-api.
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
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
Criando uma nova sessão:
O retorno dos métodos é um Http/Response
provido pelo cliente Http
do Laravel.
Para enviar mensagens:
Lado cliente (Laravel Echo)
Configure o Laravel Echo conforme a documentação.
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:
Evento | Descrição |
---|---|
.connection-open | Ocorre quando uma sessão foi estabelecida com sucesso. |
.connection-closed | Ocorre quando a conexão foi interrompida (logout). |
.connection-connecting | Ocorre quando se lê o QRCode e inicia-se a autenticação. |
.connnection-qrcode | Ocorre quando um QRCode é gerado para ser lido. |
.connection-updated | Ocorre quando há alguma atualização na conexão (WIP). |
.message-upsert | Ocorre quando há novas atualizações em mensagens e notificações. |
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.
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.
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.
Continua...
Esta documentação está em WIP, assim como este pacote.
Qualquer dúvida ou sugestão por favor contate-nos via:
Criado por jjsquady
Colaborador tiagoandre
@2022 RocketsLab
All versions of wa-laravel with dependencies
beyondcode/laravel-websockets Version ^1.13
laravel/framework Version ^8.0