Enviar mensajes SMS y MMS en C
En este artículo, usaremos C, libcurl y algunas API de POSIX para enviar mensajes SMS y MMS mediante la API REST de Twilio. Además de un entorno de compilación compatible con POSIX (al menos en la mayoría de los casos), necesitarás libcurl para el código de esta guía.
¡Empecemos!
Regístrate para obtener una cuenta de Twilio (o inicia sesión)
Antes de hacer uso de la API de Twilio, deberás crear una cuenta o iniciar sesión con una cuenta existente.
¿No tienes una cuenta? Regístrate para obtener una prueba gratuita de Twilio.
Buscar o adquirir un número compatible con SMS
Para esta demostración, necesitas un número de teléfono de Twilio con funcionalidades de SMS (y MMS). Puedes utilizar un número de teléfono de tu propiedad o adquirir uno nuevo con el envío de SMS habilitado.
Así es como aparecen los números compatibles con SMS en la lista de números:
Y así es como puedes buscar un número nuevo con funcionalidades de SMS (o MMS, si también seleccionas esa opción):
Requisitos previos de la Guía de envío de SMS en C
Esta guía está dirigida a entornos compatibles con POSIX y se probó con clang-800.0.42.1 en Mac OSX 10.11, gcc 4.9.2 en Raspbian (kernel 4.4.34-v7+) y gcc 5.4.0 en Cygwin 2.877 en Windows 7 de 64 bits. Como mínimo, necesitaremos lo siguiente:
- stdio.h, stdlib.h, unistd.h: bilbiotecas C POSIX
- libcurl: biblioteca de transferencia del lado del cliente
En Mac, libcurl ya se encuentra disponible. En Raspberry Pi, puedes instalar una versión adecuada con lo siguiente:
sudo apt-get install libcurl4-openssl-dev
En Windows 7, libcurl se puede instalar con el programa de instalación de Cygwin:
Creación de c_sms
Makefile es nuestro ejemplo, que se pudo utilizar en los tres entornos.
En la mayoría de los sistemas de tipo *NIX (incluso en Cygwin), es probable que el proceso de creación sea tan fácil como escribir lo siguiente:
git clone https://github.com/TwilioDevEd/twilio_c_sms.git
cd twilio_c_sms
make
Es posible que debas realizar pequeñas modificaciones en Makefile para crear c_sms en tu entorno. Lo más habitual es cambiar las rutas de búsqueda de la biblioteca o el compilador.
Enviar un mensaje SMS o MMS con C
Acabamos de crear c_sms, que se puede invocar desde la línea de comandos e intentará enviar un SMS o MMS antes de salir. twilio.c
incluye la función twilio_send_message, que se adapta fácilmente a tu propia base de código (por supuesto, debes incorporar validación y seguridad antes de usarla en la producción. Por ejemplo, ten en cuenta que puedes agregar más parámetros a través de las variables).
Veamos cómo funciona twilio_send_message.
- En primer lugar, preparamos las credenciales de nuestra cuenta y los parámetros HTTP que utilizará la API de Twilio.
- En segundo lugar, debemos preparar la biblioteca libcurl para ejecutar una solicitud HTTP POST en la API de Twilio. Las invocaciones de la función
curl_easy_setopt
le indican a libcurl que utilice la URL y el cuerpo que configuramos para que publique, y use los detalles de nuestra cuenta y Auth Token (Token de autenticación). - En tercer lugar, ejecutamos la solicitud POST y realizamos una limpieza con las siguientes líneas:
res = curl_easy_perform(curl); curl_easy_cleanup(curl);
- En cuarto lugar, verificamos si hay errores de libcurl o la API de Twilio.
Este es el código para twilio_send_message
en C:
Ejecución de c_sms
Después de la creación de c_sms, invocarlo desde la línea de comandos es fácil. Basta con ingresar las credenciales de la cuenta, los números del remitente y destinatario y el cuerpo del mensaje, y el teléfono se iluminará. El siguiente es un ejemplo de sesión:
account_sid=ACXXXXXXXXXXXXXXXXXXXXXX
auth_token=your_auth_token
bin/c_sms -a $account_sid -s $auth_token -t "+18005551212" -f "+18005551213" -m "Hello, World!"
# Como alternativa, puedes utilizar “-p http://some/path/to/img.jpg” para enviar un MMS.
¿Listo para usar C? Es hora de que realices tu propia creación
Más de 45 años y miles de millones de líneas de código después, es obvio que Dennis Ritchie diseñó un lenguaje para llegar lejos. Ahora Twilio puede acompañarte en tu recorrido por C con tan solo unas pocas bibliotecas de ayuda y tu caso de uso de SMS y MMS.
Esperamos que este sea un buen punto de partida. Cuéntanos sobre tus creaciones en Twitter.
¿Necesitas ayuda?
Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.