Ana içeriğe geç

PHP Entegrasyonu

SMSBAT API'sini PHP uygulamanıza entegre etmek, yerleşik cURL kitaplığını veya popüler Guzzle HTTP istemcisini kullanarak basittir.

Guzzle HTTP İstemcisini Kullanma (Önerilir)

Öncelikle Composer'ı kullanarak Guzzle'ı yükleyin:

composer require guzzlehttp/guzzle

Daha sonra mesaj göndermek için aşağıdaki kodu kullanın:

<?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";
    }
}

Yerel cURL'yi kullanma

Üçüncü taraf paketleri kullanmamayı tercih ediyorsanız PHP'nin yerel cURL uzantısını kullanabilirsiniz:

<?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);