Pacote Laravel para integração com Evolution API - WhatsApp Business API.
- 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-padraouse 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);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);
}
}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)
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());
}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'),
];