Uma package Laravel para integração com a Z-API (WhatsApp API).
- Adicione o repositório ao seu
composer.json:
{
"repositories": [
{
"type": "vcs",
"url": "https://github.com/brew-apps/zapi"
}
]
}- Instale via Composer:
composer require brew/zapi- Publique os arquivos de configuração e migrations:
php artisan vendor:publish --provider="Brew\Zapi\Providers\ZapiServiceProvider"- Execute as migrations:
php artisan migrate- Configure suas credenciais no arquivo
.env:
ZAPI_API_URL=https://api.z-api.io
ZAPI_INSTANCE_ID=seu-instance-id
ZAPI_INSTANCE_TOKEN=seu-instance-token
ZAPI_CLIENT_TOKEN=seu-client-tokenuse Brew\Zapi\Facades\Zapi;
use Brew\Zapi\DTO\Messages\TextMessageData;
// Crie o objeto de mensagem
$message = new TextMessageData(
phone: '5511999999999', // Formato: DDI + DDD + Número
message: 'Sua mensagem aqui',
delayMessage: 1 // Opcional: delay em segundos
);
// Envie a mensagem
try {
$response = Zapi::sendText($message);
if ($response->success) {
echo "Mensagem enviada com sucesso! ID: {$response->messageId}";
}
} catch (\Brew\Zapi\Exceptions\ZapiException $e) {
echo "Erro ao enviar mensagem: " . $e->getMessage();
}O status da mensagem pode ser:
MessageStatus::PENDING: Mensagem aguardando envioMessageStatus::SENT: Mensagem enviadaMessageStatus::DELIVERED: Mensagem entregueMessageStatus::READ: Mensagem lidaMessageStatus::ERROR: Erro no envio
use Brew\Zapi\Enums\MessageStatus;
if ($response->status === MessageStatus::SENT) {
echo "Mensagem enviada com sucesso!";
}A package automaticamente registra todas as requisições e respostas na tabela zapi_logs. Você pode acessá-las através do modelo ZapiLog:
use Brew\Zapi\Models\ZapiLog;
// Buscar todos os logs
$logs = ZapiLog::all();
// Buscar logs específicos
$logs = ZapiLog::where('endpoint', 'send-text')
->where('status_code', 200)
->get();Esta package está preparada para receber novas funcionalidades, incluindo:
-
Mensagens:
- Envio de áudio
- Envio de imagens
- Envio de documentos
- Envio de links
- etc.
-
Chamadas:
- Fazer chamada
- Atender chamada
- Rejeitar chamada
-
Chats:
- Listar chats
- Arquivar chat
- Marcar como lido
Para adicionar novas funcionalidades, siga a estrutura de namespaces existente:
Messages/para funcionalidades relacionadas a mensagensCalls/para funcionalidades relacionadas a chamadasChats/para funcionalidades relacionadas a chats
Contribuições são bem-vindas! Por favor, sinta-se à vontade para submeter um Pull Request.
Esta package é um software open-source licenciado sob a licença MIT.