Към съдържанието

PHP Integration

Integrating SMSBAT API into your PHP application is simple using the built-in cURL library or the popular Guzzle HTTP client.

First, install Guzzle using Composer:

composer require guzzlehttp/guzzle

Then, use the following code to send a message:

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

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;

$client = new Client([
    'base_uri' => 'https://api.smsbat.com',
    'timeout'  => 10.0,
]);

$apiKey = 'YOUR_API_KEY_HERE';

$payload = [
    'messages' => [
        [
            'from' => 'ALPHANAME',
            'to' => '380501234567',
            'text' => 'Hello from PHP and SMSBAT!',
            'type' => 'sms'
        ]
    ]
];

try {
    $response = $client->post('/bat/messagelist', [
        'headers' => [
            'Content-Type' => 'application/json',
            'X-Authorization-Key' => $apiKey
        ],
        'json' => $payload
    ]);

    echo "Status Code: " . $response->getStatusCode() . "\n";
    echo "Response: " . $response->getBody() . "\n";

} catch (RequestException $e) {
    echo "Error: " . $e->getMessage() . "\n";
    if ($e->hasResponse()) {
        echo "Response: " . $e->getResponse()->getBody() . "\n";
    }
}

Using Native cURL

If you prefer not to use third-party packages, you can use PHP's native cURL extension:

<?php

$url = 'https://api.smsbat.com/bat/messagelist';
$apiKey = 'YOUR_API_KEY_HERE';

$payload = json_encode([
    'messages' => [
        [
            'from' => 'ALPHANAME',
            'to' => '380501234567',
            'text' => 'Hello from PHP Native cURL!',
            'type' => 'sms'
        ]
    ]
]);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-Authorization-Key: ' . $apiKey
]);

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

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo "Status Code: $httpCode\n";
    echo "Response: $response\n";
}

curl_close($ch);