Envío de SMS en PHP: API de la biblioteca sms.ru y otros servicios

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Envío de SMS en PHP: revisión de bibliotecas API y soluciones listas



En las aplicaciones web modernas, el envío de mensajes SMS sigue siendo una función demandada: confirmación de registro, autenticación de dos factores, notificaciones sobre el estado del pedido. En este artículo, analizaremos cómo implementar el envío de SMS en PHP utilizando bibliotecas API y servicios populares. Consideraremos tanto los SDK oficiales como las soluciones ligeras basadas en cURL.



1. Elección del proveedor de SMS y la biblioteca



Antes de comenzar, debe registrarse en uno de los servicios de SMS y obtener una clave API. Para PHP, existen varias opciones probadas:



  • sms.ru – servicio ruso popular con una API simple y una biblioteca oficial para PHP.
  • Twilio – gigante internacional con un potente SDK para PHP (twilio/sdk).
  • ClickSend – servicio universal con soporte para REST API.
  • Clase simple con cURL – si no desea agregar dependencias externas.


2. Instalación de bibliotecas a través de Composer



Para trabajar con Twilio o ClickSend, lo más conveniente es usar Composer. Ejemplo de instalación:



composer require twilio/sdkcomposer require clicksend/clicksend-php


Para sms.ru, la biblioteca oficial también se instala a través de Composer:



composer require smsru/smsru


Si prefiere no usar un gestor de dependencias, puede descargar los archivos PHP manualmente desde GitHub o escribir su propia clase con cURL.



3. Ejemplo de envío de SMS a través de sms.ru



El servicio sms.ru proporciona una API simple y clara. A continuación se muestra un ejemplo de envío de un mensaje utilizando la biblioteca oficial:



<?phprequire_once 'vendor/autoload.php';

use SMSRU\\SMSRU;

$sms = new SMSRU('SU_CLAVE_API');

$data = new stdClass();$data->to = '79123456789'; // Número del destinatario$data->text = 'Mensaje de prueba'; // Texto del SMS$data->from = 'MiSitio'; // Nombre del remitente (firma)

$response = $sms->send_one($data);

if ($response->status == 'OK') { echo "Mensaje enviado. ID: " . $response->sms_id;} else { echo "Error: " . $response->status_text;}?>


Importante: previamente, en el panel de control de sms.ru, debe registrar la firma del remitente y recargar el saldo.



4. Envío de SMS a través del SDK de Twilio



Twilio es uno de los servicios más confiables para envíos internacionales. Ejemplo de código en PHP:



<?phprequire_once 'vendor/autoload.php';

use Twilio\\Rest\\Client;

$account_sid = 'SU_ACCOUNT_SID';$auth_token = 'SU_AUTH_TOKEN';$twilio_number = '+1234567890'; // Número obtenido en Twilio

$client = new Client($account_sid, $auth_token);

$message = $client->messages->create( '+79123456789', // Número del destinatario [ 'from' => $twilio_number, 'body' => '¡Saludos desde Twilio y PHP!' ]);

echo "Enviado con ID: " . $message->sid;?>


Twilio admite comunicación bidireccional, webhooks y verificación del estado de entrega.



5. Implementación sin bibliotecas externas (cURL)



Si no desea usar Composer, puede escribir una función universal con cURL. Ejemplo para sms.ru:



<?phpfunction sendSms($api_key, $phone, $message) {    $url = 'https://sms.ru/sms/send';    $params = [        'api_id' => $api_key,        'to' => $phone,        'msg' => $message,        'json' => 1    ];

$ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch); curl_close($ch);

return json_decode($response, true);}

$result = sendSms('

Recommendations