PHP code example of wapi2 / whatsapp-php-sdk

1. Go to this page and download the library: Download wapi2/whatsapp-php-sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

wapi2 / whatsapp-php-sdk example snippets



Wapi2\WhatsApp\WhatsAppClient;
use Wapi2\WhatsApp\Exception\WhatsAppException;

// Configurar cliente
$token = 'tu-token-de-wapi2';
$client = new WhatsAppClient($token);

try {
    // Obtener sesiones disponibles
    $sessions = $client->getSessions();
    
    if (!empty($sessions['data'])) {
        $sessionId = $sessions['data'][0]['session_id'];
        
        // Verificar estado de la sesión
        if ($sessions['data'][0]['status'] === 'ready') {
            // Enviar un mensaje
            $result = $client->sendMessage(
                '34612345678',  // Número destinatario o ID de grupo
                '¡Hola desde WhatsApp!',
                $sessionId
            );
            print_r($result);
        }
    }
} catch (WhatsAppException $e) {
    echo "Error: " . $e->getMessage();
}

// Obtener todas las sesiones
$sessions = $client->getSessions();

// Verificar estado de una sesión
$status = $client->checkAuth($sessionId);

// Enviar mensaje de texto
$client->sendMessage($to, $message, $sessionId);

// Enviar imagen
$client->sendImage($to, $imageUrl, $caption, $sessionId);

// Enviar video
$client->sendVideo($to, $videoUrl, $caption, $sessionId);

// Enviar PDF
$client->sendPDF($to, $pdfUrl, $filename, $caption, $sessionId);

// Enviar documento de Office
$client->sendOfficeDocument($to, $documentUrl, $filename, $caption, $sessionId);

// Enviar archivo ZIP
$client->sendZipFile($to, $zipUrl, $filename, $caption, $sessionId);

// Enviar ubicación
$client->sendLocation($to, $latitude, $longitude, $description, $sessionId);

// Obtener lista de contactos
$contacts = $client->getContacts($sessionId);

// Obtener lista de grupos
$groups = $client->getGroups($sessionId);

// Verificar si un número está en WhatsApp
$isRegistered = $client->isRegisteredUser($phone, $sessionId);


Wapi2\WhatsApp\WhatsAppClient;
use Wapi2\WhatsApp\Exception\WhatsAppException;

$token = 'tu-token-de-wapi2';

try {
    // Inicializar el cliente
    $client = new WhatsAppClient($token);

    // Obtener sesiones disponibles
    $sessions = $client->getSessions();

    if (!empty($sessions['data'])) {
        $sessionId = $sessions['data'][0]['session_id'];
        
        // Verificar autenticación
        $auth = $client->checkAuth($sessionId);
        
        if ($auth['authenticated']) {
            // Enviar mensaje
            $result = $client->sendMessage(
                '34612345678',
                '¡Hola desde el SDK!',
                $sessionId
            );
            
            if ($result['status'] === 'success') {
                echo "\nMensaje enviado exitosamente\n";
            }
            
            // Enviar documento
            $documentResult = $client->sendOfficeDocument(
                '34612345678',
                'https://ejemplo.com/documento.docx',
                'informe.docx',
                'Informe mensual',
                $sessionId
            );

            // Obtener grupos
            $groups = $client->getGroups($sessionId);
            if (!empty($groups['groups'])) {
                // Enviar mensaje a un grupo
                $groupId = $groups['groups'][0]['id'];
                $client->sendMessage(
                    $groupId,
                    'Mensaje para el grupo',
                    $sessionId
                );
            }
        } else {
            echo "\nLa sesión no está autenticada\n";
        }
    } else {
        echo "\nNo se encontraron sesiones disponibles\n";
    }

} catch (WhatsAppException $e) {
    echo "Error: " . $e->getMessage() . "\n";
    echo "Código: " . $e->getCode() . "\n";
    if ($errorData = $e->getErrorData()) {
        echo "Datos adicionales del error:\n";
        print_r($errorData);
    }
}

try {
    $result = $client->sendMessage($to, $message, $sessionId);
} catch (WhatsAppException $e) {
    // Verificar tipo específico de error
    if ($e->isValidationError()) {
        // Manejar errores de validación (tamaño archivo, longitud nombre, etc)
        switch ($e->getCode()) {
            case WhatsAppException::ERROR_FILE_SIZE:
                echo "El archivo excede el límite de 16MB";
                break;
            case WhatsAppException::ERROR_FILENAME_LENGTH:
                echo "Nombre de archivo demasiado largo";
                break;
            case WhatsAppException::ERROR_CAPTION_LENGTH:
                echo "Caption demasiado largo";
                break;
        }
    } elseif ($e->isAuthenticationError()) {
        // Manejar errores de autenticación y permisos
        if ($e->isErrorType(WhatsAppException::ERROR_GROUP_PERMISSION)) {
            echo "Sin permisos en el grupo";
        }
    }
    
    // También puedes obtener:
    echo $e->getMessage();      // Mensaje de error
    echo $e->getCode();        // Código de error
    $errorData = $e->getErrorData(); // Datos adicionales
}
bash
composer