kalezao / laravel-evolutionapi
Laravel package for Evolution API integration with WhatsApp messaging
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/kalezao/laravel-evolutionapi
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^10.0|^11.0|^12.0
README
Pacote Laravel para integração com Evolution API - WhatsApp Business API.
Instalação
- O pacote já está configurado no projeto
- Publique o arquivo de configuração:
php artisan vendor:publish --provider="Kalezao\EvolutionApi\EvolutionApiServiceProvider"
- Configure as variáveis de ambiente no
.env:
EVOLUTION_API_BASE_URL=https://sua-evolution-api.com EVOLUTION_API_KEY=sua-api-key-aqui EVOLUTION_API_TIMEOUT=30 EVOLUTION_API_DEFAULT_INSTANCE=instancia-padrao
Uso
Usando a Facade
use Kalezao\EvolutionApi\Facades\EvolutionAPI; // Enviar mensagem de texto $response = EvolutionAPI::sendText('minha-instancia', '5511999999999', 'Olá! Esta é uma mensagem de teste.'); // Enviar mídia $response = EvolutionAPI::sendMedia( 'minha-instancia', '5511999999999', 'image', 'https://exemplo.com/imagem.jpg', ['caption' => 'Legenda da imagem'] ); // Enviar status $response = EvolutionAPI::sendStatus('minha-instancia', [ 'type' => 'text', 'content' => 'Meu status de teste', 'allContacts' => true ]); // Criar instância $response = EvolutionAPI::createInstance([ 'instanceName' => 'nova-instancia', 'token' => 'token-da-instancia', 'qrcode' => true, 'integration' => 'WHATSAPP-BAILEYS' ]); // Listar instâncias $instances = EvolutionAPI::getInstances(); // Listar grupos da instância $groups = EvolutionAPI::getGroups('minha-instancia', true);
Usando o Service Container
use Kalezao\EvolutionApi\Services\EvolutionApiService; class MeuController extends Controller { public function __construct( private EvolutionApiService $evolutionApi ) {} public function enviarMensagem() { $response = $this->evolutionApi->sendText( 'minha-instancia', '5511999999999', 'Mensagem enviada via service!' ); return response()->json($response); } }
Métodos Disponíveis
sendText($instance, $number, $text, $options = [])- Enviar mensagem de textosendMedia($instance, $number, $mediaType, $media, $options = [])- Enviar mídiasendStatus($instance, $statusData)- Enviar statuscreateInstance($instanceData)- Criar nova instânciagetInstance($instance)- Obter informações da instânciagetQrCode($instance)- Obter QR code da instânciadisconnectInstance($instance)- Desconectar instânciadeleteInstance($instance)- Deletar instânciagetInstances()- Listar todas as instânciasgetGroups($instance, $withParticipants = false)- Listar grupos da instância (opcionalmente com participantes)
Tratamento de Erros
O pacote lança EvolutionApiException em caso de erro:
use Kalezao\EvolutionApi\Exceptions\EvolutionApiException; try { $response = EvolutionAPI::sendText('instancia', 'numero', 'texto'); } catch (EvolutionApiException $e) { // Tratar erro Log::error('Erro ao enviar mensagem: ' . $e->getMessage()); }
Configuração
O arquivo de configuração config/evolution-api.php contém:
return [ 'base_url' => env('EVOLUTION_API_BASE_URL', 'https://api.evolution.com'), 'api_key' => env('EVOLUTION_API_KEY'), 'timeout' => env('EVOLUTION_API_TIMEOUT', 30), 'default_instance' => env('EVOLUTION_API_DEFAULT_INSTANCE'), ];