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.

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

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.