PHP Client Library

Complete documentation for the GroupVAN PHP client library.


Installation

Requirements

  • PHP 7.4 or higher
  • Composer package manager

Install via Composer

composer require groupvan/client

Quick Example

<?php
require_once 'vendor/autoload.php';

use GroupVAN\Client;

// Initialize client
$client = new Client([
    'developer_id' => 'DEV123',
    'key_id' => 'KEY001',
    'private_key_path' => '/path/to/private_key.pem'
]);

// Generate JWT token
$token = $client->generateToken();

// Make API call
$response = $client->apiCall('GET', '/api/v3/users', $token);

echo json_encode($response);

Configuration

// Using array configuration
$client = new Client([
    'developer_id' => 'DEV123',
    'key_id' => 'KEY001',
    'private_key_path' => '/path/to/private_key.pem',
    'base_url' => 'https://api.groupvan.com', // optional
    'timeout' => 30 // optional, in seconds
]);

// Using environment variables
$client = Client::fromEnv();
// Looks for:
// - GROUPVAN_DEVELOPER_ID
// - GROUPVAN_KEY_ID
// - GROUPVAN_PRIVATE_KEY_PATH

API Reference

Methods

generateToken($options = [])

Generate a JWT token for API authentication.

$token = $client->generateToken([
    'expiration_minutes' => 5, // optional, default: 5
    'additional_claims' => [] // optional
]);

apiCall($method, $endpoint, $token = null, $options = [])

Make an authenticated API call.

$response = $client->apiCall(
    'POST',
    '/api/v3/users',
    $token,
    [
        'data' => ['name' => 'John Doe'],
        'params' => ['page' => 1],
        'headers' => ['X-Custom' => 'value']
    ]
);

Error Handling

try {
    $token = $client->generateToken();
    $response = $client->apiCall('GET', '/api/v3/users', $token);
} catch (\GroupVAN\AuthenticationException $e) {
    echo "Authentication failed: " . $e->getMessage();
} catch (\GroupVAN\APIException $e) {
    echo "API call failed: " . $e->getMessage();
    echo "Status code: " . $e->getStatusCode();
}

Resources