Отправка SMS на PHP: API библиотеки для интеграции

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Отправка SMS на PHP: API библиотеки для быстрой интеграции

Отправка SMS-сообщений остаётся одним из самых надёжных способов уведомления пользователей: подтверждение заказа, двухфакторная аутентификация, напоминания о событиях. Для PHP существует множество готовых библиотек, которые упрощают работу с SMS-провайдерами через их API. В этой статье мы рассмотрим популярные решения, способы их установки и примеры кода для отправки сообщений.

Зачем использовать библиотеку для отправки SMS?

Ручная работа с HTTP-запросами к API SMS-шлюза требует написания большого объёма шаблонного кода: формирование заголовков, обработка ошибок, работа с JSON/XML, проверка статусов. Готовая библиотека берёт эти задачи на себя, предоставляя чистый объектно-ориентированный интерфейс. Это ускоряет разработку и снижает вероятность ошибок.

Популярные библиотеки для отправки SMS на PHP

Выбор библиотеки зависит от используемого SMS-провайдера. Рассмотрим два популярных варианта:

  • Twilio PHP SDK – официальная библиотека для работы с Twilio. Поддерживает отправку SMS, голосовые вызовы, проверку номера.
  • SMS Aero PHP SDK – библиотека для российского сервиса SMS Aero. Позволяет отправлять сообщения, проверять баланс, получать статистику.

Установка через Composer

Большинство современных PHP-библиотек устанавливаются через Composer. Выполните в терминале:

composer require twilio/sdk

Для SMS Aero:

composer require sms-aero/sms-aero-php

После установки подключите автозагрузчик в вашем скрипте:

require_once 'vendor/autoload.php';

Пример отправки SMS через Twilio

Для работы с Twilio вам понадобятся Account SID и Auth Token (находятся в консоли Twilio). Пример кода:

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

use Twilio\Rest\Client;

$sid    = "ваш_account_sid";
$token  = "ваш_auth_token";
$twilio = new Client($sid, $token);

$message = $twilio->messages
    ->create(
        "+71234567890", // номер получателя
        [
            "from" => "+12345678901", // номер отправителя (куплен у Twilio)
            "body" => "Привет! Это тестовое SMS из PHP."
        ]
    );

echo "Сообщение отправлено. ID: " . $message->sid;
?>

В случае успеха метод create() возвращает объект с информацией о сообщении. При ошибке выбрасывается исключение TwilioException.

Пример отправки SMS через SMS Aero

Для российского сервиса SMS Aero потребуются email и API-ключ. Пример:

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

use SmsAero\SmsAeroClient;

$client = new SmsAeroClient('ваш_email@example.com', 'ваш_api_key');

try {
    $response = $client->sendSms(
        '71234567890',
        'Текст сообщения',
        'SENDER_NAME' // имя отправителя, зарегистрированное в сервисе
    );
    echo "SMS отправлено. ID: " . $response->id;
} catch (Exception $e) {
    echo "Ошибка: " . $e->getMessage();
}
?>

Метод sendSms() возвращает объект ответа, содержащий статус доставки, ID сообщения и баланс.

Основные возможности библиотек

  • Отправка одиночных и массовых SMS – можно отправить одно сообщение или список номеров.
  • Проверка статуса доставки – запрос статуса по ID сообщения.
  • Управление отправителями – регистрация и выбор имени отправителя.
  • Работа с шаблонами – для некоторых провайдеров можно использовать предопределённые шаблоны сообщений.
  • Баланс и статистика – получение текущего баланса и отчётов по отправкам.

Обработка ошибок и исключения

Библиотеки выбрасывают исключения при проблемах с сетью, неверных учётных данных или превышении лимитов. Рекомендуется оборачивать вызовы в блок try-catch:

try {
    // отправка SMS
} catch (\Twilio\Exceptions\RestException $e) {                    

Рекомендаций