PHP code example of vzaps / sdk

1. Go to this page and download the library: Download vzaps/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/ */

    

vzaps / sdk example snippets




Zaps\Sdk\VZapsClient;

$vzaps = new VZapsClient(
    clientToken: getenv('VZAPS_CLIENT_TOKEN'),
    clientSecret: getenv('VZAPS_CLIENT_SECRET'),
);

$vzaps->messages()->sendText([
    'instanceId' => 'VZKB8AU4S4CWY1SLXX4I5WJGRZQMDDFTV6',
    'instanceToken' => getenv('VZAPS_INSTANCE_TOKEN'),
    'phone' => '5511999999999',
    'message' => 'Hello from VZaps',
]);

$token = $vzaps->auth()->getAccessToken();

$vzaps->messages()->sendText([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'phone' => '5511999999999',
    'message' => 'Hello',
]);

$vzaps->messages()->sendImage([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'phone' => '5511999999999',
    'image' => 'https://example.com/photo.jpg',
    'caption' => 'Check this out',
]);

$instance = $vzaps->request('POST', '/instances/get', ['id' => 'VZ...']);

$vzaps->messages()->sendText([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'phone' => '5511999999999',
    'message' => 'Hello',
]);

$vzaps->webhooks()->set([
    'instanceId' => 'VZ...',
    'instanceToken' => 'instance-token',
    'webhookURL' => 'https://example.com/webhooks/vzaps',
    'events' => ['Message', 'Connected', 'Disconnected'],
]);

use VZaps\Sdk\Models\Realtime\EventSubscribeRequest;
use VZaps\Sdk\Models\Realtime\VZapsEventType;

$subscription = $vzaps->events()->subscribe(new EventSubscribeRequest(
    instanceId: 'VZ...',
    instanceToken: 'instance-token',
    events: [VZapsEventType::Message, VZapsEventType::Connected, VZapsEventType::Disconnected],
    reconnect: true,
    lastEventId: 'evt_previous_id', // optional resume after disconnect
));

$subscription->on(VZapsEventType::Message, function ($event): void {
    echo $event->data['type'] ?? '', PHP_EOL;
});

$subscription->onError(function (\Throwable $error): void {
    error_log($error->getMessage());
});

// Blocking loop — run in a worker process
$subscription->awaitClose();

// Graceful shutdown from another signal handler
$subscription->close();

use VZaps\Sdk\Exceptions\VZapsApiException;
use VZaps\Sdk\Exceptions\VZapsAuthenticationException;
use VZaps\Sdk\Exceptions\VZapsException;
use VZaps\Sdk\Exceptions\VZapsTimeoutException;

try {
    $vzaps->messages()->sendText([
        'instanceId' => $instanceId,
        'instanceToken' => $instanceToken,
        'phone' => $phone,
        'message' => $message,
    ]);
} catch (VZapsAuthenticationException $e) {
    error_log('Check client credentials');
} catch (VZapsTimeoutException $e) {
    error_log('Request timed out');
} catch (VZapsApiException $e) {
    error_log($e->statusCode . ' ' . $e->getMessage());
} catch (VZapsException $e) {
    throw $e;
}

use VZaps\Sdk\Models\Common\InstanceCreateRequest;
use VZaps\Sdk\Models\Messages\SendTextMessageRequest;
use VZaps\Sdk\Models\Realtime\EventSubscribeRequest;
use VZaps\Sdk\Models\Realtime\VZapsEvent;
use VZaps\Sdk\Models\Realtime\VZapsEventType;
use VZaps\Sdk\VZapsClient;

/** @var array<string, mixed> $page */
$page = $vzaps->instances()->list([
    'page' => 1,
    'pageSize' => 20,
]);

$vzaps->messages()->sendText(new SendTextMessageRequest(
    instanceId: 'VZ...',
    instanceToken: getenv('VZAPS_INSTANCE_TOKEN'),
    phone: '5511999999999',
    message: 'Hello from VZaps',
));