https://d226lax1qjow5r.cloudfront.net/blog/blogposts/sending-sms-messages-with-php/sms-messages_php.png

Envío de mensajes SMS con PHP

Publicado el January 29, 2024

Tiempo de lectura: 3 minutos

Este artículo se actualizó en agosto de 2025

En este tutorial, vamos a enviar mensajes SMS con el menor número posible de líneas de PHP. En primer lugar, con un script en bruto, y en segundo lugar utilizando un framework de aplicaciones web mínimo.

Requisitos previos

  • PHP 8.1+

  • Compositorpara la gestión de paquetes

  • Una cuenta API de Vonage

Para completar este tutorial, necesitarás una Account API de Vonage.

Cómo enviar texto con PHP sin procesar

Comenzaremos creando un nuevo proyecto Composer e incorporando el SDK PHP de Vonage. Usando la línea de comandos, agrega lo siguiente:

mkdir vonage-sms
cd vonage-sms
composer init

Composer te hará una serie de preguntas - puedes dejarlas todas por defecto ya que sólo estamos haciendo el mínimo esfuerzo. El proceso debería crear su archivo composer.json archivo. Ahora podemos agregar el SDK PHP de Vonage:

composer require vonage/client

Ahora, a crear nuestro script.

touch send-sms.php

Abra el nuevo archivo PHP y asegúrese de que la carga automática de Composer está activada:

<?php

require_once './vendor/autoload.php';

Para enviar un SMS, necesitamos tres cosas:

  • Un conjunto de credenciales tomadas de Vonage Dashboard

  • Un objeto Cliente

  • Un texto para enviar

Teniendo esto en cuenta, aquí están las líneas finales de código:

$credentials = new \Vonage\Client\Credentials\Basic(YOUR_API_KEY, YOUR_API_SECRET);
$client = new Vonage\Client($credentials);
$message = new Vonage\Messages\Channel\SMS\SMSText(
  YOUR_NUMBER,
  'Vonage',
  'Hello from Vonage!'
);

$client->messages()->send($message);

Introduzca los datos necesarios en los marcadores de posición de variables constantes y pulse enviar:

Screenshot of a phone device showing the recieved SMSOur SMS has been sent!

¡Cuatro líneas de código está muy bien! La segunda parte es conectar esto a un framework web básico para que puedas POSTAR un mensaje en lugar de codificarlo como hemos hecho antes.

Cómo enviar SMS a través de. Slim Framework

Para el segundo ejemplo, vamos a utilizar el Slim Frameworkasí que instálalo con Composer:

composer require slim/slim:"4".*
composer require slim/psr7

El segundo comando aquí instala la implementación PSR-7 (Request Interface) de Slim. Vamos a crear una ruta que toma una solicitud POST con un cuerpo JSON que contiene algún texto.

Aquí está el archivo send-sms.php modificado:

<?php

use Slim\Psr7\Request;
use Slim\Psr7\Response;

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

$app = \Slim\Factory\AppFactory::create();

$app->post('/send', function (Request $request, Response $response) {
   $rawBody = $request->getBody()->getContents();
   $requestData = json_decode($rawBody);
   $text = $requestData->text;

   $credentials = new \Vonage\Client\Credentials\Basic('232130c9', 's09IJad98fa0t9j09ad8fa90s');
   $client = new Vonage\Client($credentials);
   $message = new Vonage\Messages\Channel\SMS\SMSText(
     YOUR_NUMBER,
     'Vonage',
     $text
);

   $client->messages()->send($message);

   $response->getBody()->write("Vonage sent this text!");
   return $response;
});

$app->run();

En lugar de ejecutar este código, estamos simulando el uso de una plataforma web en su lugar, por lo que vamos a utilizar PHP incorporado en el servidor web para iniciar un entorno de desarrollo desde la línea de comandos:

php -S localhost:8888 -t send-php.php

Para enviar el mensaje, necesitará un cliente HTTP que facilite el envío de solicitudes POST. Yo he optado por Kong's Insomnia de Kong, pero también puedes usar Postman o incluso una petición cURL sin procesar.

Screenshot of Insomnia sending a POST requestAPI Tooling is super helpful

Conclusión

Ahora tenemos una ruta donde se puede enviar el texto del mensaje a un servidor para que complete el proceso. Por supuesto, puedes añadir claves adicionales a la carga JSON para añadir los números de móvil de origen y destino. ¿Te apetece construir algo a partir de esto? Echa un vistazo a nuestra integración Laravel o lee más sobre cómo enviar mensajes con esta API en Symfony.

¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.

Recursos adicionales

Envío de SMS desde PHP con Failover: La pastelería Cupcake

Seguridad Tipográfica Bien Hecha - PHP Array Hacking

¡Limpiar! Limpieza de Aplicaciones PHP con PHPStan

SDK PHP de Vonage

Compartir:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondePromotor senior de desarrollo PHP

Actor de formación con una disertación sobre la comedia, llegué al desarrollo de PHP a través de la escena de las reuniones. Puedes encontrarme hablando y escribiendo sobre tecnología, o tocando/comprando discos raros de mi colección de vinilos.