API WhatsApp - Envio de Mensagens

Visão Geral

A API WhatsApp permite o envio de mensagens e verificação de status do serviço WhatsApp integrado ao Ravi Monitor.

Configuração Prévia

⚠️ IMPORTANTE: Para utilizar a API WhatsApp, é necessário ter uma conta WhatsApp conectada no sistema:

  1. Acesse o painel administrativo do Ravi Monitor
  2. Clique em Configurações
  3. Acesse a aba Integrações
  4. Ative o WhatsApp
  5. Escaneie o QR Code com seu WhatsApp
  6. Aguarde a confirmação de conexão

Parâmetros Base

Todas as operações WhatsApp requerem:

Operações Disponíveis

1. send - Enviar Mensagem

Envia mensagens WhatsApp para um ou múltiplos contatos.

Parâmetros Obrigatórios

Formato de Contatos

Exemplo 1: Um Contato

curl -X POST "https://seu-servidor-ravi/api.php" \
  -d "token=SEU_TOKEN" \
  -d "action=whatsapp" \
  -d "operation=send" \
  -d "message=Teste de mensagem do Ravi Monitor" \
  -d "contacts=551199887766"

Exemplo 2: Múltiplos Contatos

curl -X POST "https://seu-servidor-ravi/api.php" \
  -d "token=SEU_TOKEN" \
  -d "action=whatsapp" \
  -d "operation=send" \
  -d "message=Teste de mensagem do Ravi Monitor" \
  -d "contacts=551199887766,551188776655,551177665544"

Respostas Possíveis

// Sucesso
{"msg": "ok"}

// Erros
{"msg": "WhatsApp API is disabled"}
{"msg": "Message cannot be empty"}
{"msg": "Please provide contacts"}
{"msg": "No valid contacts provided"}
{"msg": "No client connected"}
{"msg": "Message sending failed"}

2. status - Verificar Status

Verifica se o WhatsApp está habilitado e conectado.

Exemplo de Requisição

curl -X POST "https://seu-servidor-ravi/api.php" \
  -d "token=SEU_TOKEN" \
  -d "action=whatsapp" \
  -d "operation=status"

Resposta

{
  "status": {
    "system_enabled": true,
    "service_connected": true,
    "connection_status": "connected"
  }
}

Estados do Serviço

Exemplos Práticos

Script Shell

#!/bin/bash

TOKEN="seu_token_aqui"
API_URL="https://seu-servidor-ravi/api.php"
PHONE="551199887766"

# Função para enviar mensagem
send_message() {
    local message="$1"
    local phone="$2"

    curl -s -X POST "$API_URL" \
        -d "token=$TOKEN" \
        -d "action=whatsapp" \
        -d "operation=send" \
        -d "message=$message" \
        -d "contacts=$phone"
}

# Verificar se WhatsApp está conectado
check_status() {
    local response=$(curl -s -X POST "$API_URL" \
        -d "token=$TOKEN" \
        -d "action=whatsapp" \
        -d "operation=status")

    echo "$response" | grep -q '"service_connected":true'
}

# Exemplo de uso
if check_status; then
    send_message "Mensagem de teste" "$PHONE"
    echo "Mensagem enviada com sucesso"
else
    echo "WhatsApp não está conectado"
fi

Script PHP

<?php

/**
 * Envia mensagem via API WhatsApp do Ravi Monitor
 * 
 * @param string|array $contacts Contato(s) - string "551199887766" ou array ["551199887766", "551188776655"]
 * @param string $message Mensagem a ser enviada
 * @return array Resposta da API
 */
function enviarWhatsApp($contacts, $message = "Teste de envio") {
    $token = 'seu_token_aqui';
    $apiUrl = 'https://seu-servidor-ravi/api.php';

    // Converter array de contatos para string
    if (is_array($contacts)) {
        $contacts = implode(',', $contacts);
    }

    $data = [
        'token' => $token,
        'action' => 'whatsapp',
        'operation' => 'send',
        'message' => $message,
        'contacts' => $contacts
    ];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200 || !$response) {
        return ['msg' => 'Erro na requisição HTTP', 'http_code' => $httpCode];
    }

    return json_decode($response, true);
}

/**
 * Verifica status da conexão WhatsApp
 * 
 * @return array Status da conexão
 */
function statusWhatsApp() {
    $token = 'seu_token_aqui';
    $apiUrl = 'https://seu-servidor-ravi/api.php';

    $data = [
        'token' => $token,
        'action' => 'whatsapp',
        'operation' => 'status'
    ];

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);

    $response = curl_exec($ch);
    curl_close($ch);

    return json_decode($response, true);
}

/*
Uso básico:

// Um contato
$resultado = enviarWhatsApp('551199887766', 'Teste de envio');

// Múltiplos contatos
$resultado = enviarWhatsApp(['551199887766', '551188776655'], 'Teste de envio');

// Verificar status
$status = statusWhatsApp();

// Verificar se enviou com sucesso
if ($resultado['msg'] === 'ok') {
    echo "Enviado com sucesso";
} else {
    echo "Erro: " . $resultado['msg'];
}
*/

?>

Códigos de Retorno

Código Descrição
"ok" Mensagem enviada com sucesso
"WhatsApp API is disabled" Serviço desabilitado no sistema
"Message cannot be empty" Mensagem vazia
"Please provide contacts" Contatos não informados
"No valid contacts provided" Formato de contatos inválido
"No client connected" WhatsApp não conectado
"Message sending failed" Falha no envio

Formato de Números

Limitações


Lembre-se: O WhatsApp deve estar ativo e conectado no painel administrativo (Configurações > Integrações) para que a API funcione.