Cómo enviar SMS desde C/C++
La forma más sencilla de enviar SMS desde C/C++ es utilizar la API HTTP/Rest de SMS integrada en Ozeki SMS Gateway. Cuando uses esta API, enviarás mensajes SMS mediante una solicitud HTTP Post al gateway de SMS. La solicitud HTTP Post contendrá un mensaje formateado en formato JSON. El gateway de SMS enviará este SMS al teléfono del destinatario y devolverá una respuesta HTTP 200 OK a tu solicitud.
Código C/C++ para enviar SMS a móviles
El ejemplo de código C/C++ para SMS a continuación demuestra cómo puedes enviar SMS usando la API HTTP Rest de SMS de Ozeki SMS Gateway con la biblioteca Ozeki.Libs.Rest para C/C++. Esta biblioteca se proporciona gratuitamente y puedes usarla y modificarla en cualquiera de tus proyectos.
SendSms.cpp#include <iostream> #include <string> #include "Ozeki.Libs.Rest.h" using namespace std; int main() { //Función para crear identificador único para cada mensaje srand((unsigned)time(0)); Configuration configuration; configuration.Username = "http_user"; configuration.Password = "qwe123"; configuration.ApiUrl = "http://127.0.0.1:9509/api"; Message msg; msg.ToAddress = "+36201111111"; msg.Text = "¡Hola mundo!"; MessageApi api(configuration); auto result = api.Send(msg); cout << result << endl; return 0; }
Cómo usar el ejemplo de SMS en C/C++:
Este ejemplo de SMS en C/C++ puede usarse en cualquier aplicación C o C++. Para usarlo, debes agregar la DLL Ozeki.Libs.Rest como referencia a tu proyecto. Después de agregar la referencia, debes incluir la directiva using Ozeki.Libs.Rest; en la sección de encabezado de tu código fuente C/C++. Esto te permitirá usar las clases proporcionadas por la biblioteca Ozeki.Libs.Rest. Puedes usar la clase Message para crear el SMS. Puedes usar la clase MessageApi para enviar el SMS al gateway de SMS. El gateway de SMS reenviará tu mensaje a la red móvil ya sea mediante una conexión inalámbrica o a través de Internet.
Descargar SendSms.cpp
El código fuente explicado en este artículo puede descargarse, usarse y modificarse gratuitamente.
Descargar: SendSms.cpp.zip (2.97Mb)
¿Qué contiene el archivo SendSms.cpp.zip?
El archivo SendSms.cpp.zip contiene la biblioteca Ozeki.Libs.Rest, que te proporciona todas las herramientas necesarias para enviar y recibir mensajes SMS. También encontrarás el proyecto SendSms en el zip, que contiene el código de ejemplo para mostrarte cómo enviar un SMS. Este código de ejemplo se muestra a continuación.
Cómo enviar SMS desde C/C++ (Guía rápida)
Para enviar SMS desde C/C++:
- Instala un usuario de API HTTP
- Activa "Registrar eventos de comunicación" en la pestaña Avanzado
- Configura Visual Studio
- Descarga y extrae el archivo SendSms.cpp.zip
- Abre el archivo sendsms.sln en Visual Studio
- Inicia la aplicación Ozeki SMS Gateway
- Ejecuta el código C++ SendSMS.cpp en Visual Studio
- Verifica los registros para ver si el SMS se envió
Instala Ozeki SMS Gateway y crea un usuario de API HTTP
Para poder enviar SMS desde C/C++, primero necesitas instalar Ozeki SMS Gateway. El gateway de SMS puede instalarse en la misma computadora donde desarrollas tu código C/C++ en Visual Studio. Después de la instalación, el siguiente paso es conectar Ozeki SMS Gateway a la red móvil. Puedes enviar un SMS de prueba desde la GUI de Ozeki para verificar que tu conexión a la red móvil funcione. El paso final para preparar tu entorno es crear un usuario de API HTTP para SMS. Crea un usuario con el nombre "http_user" y la contraseña "qwe123" para que el ejemplo funcione sin modificaciones.
Una vez configurado el entorno, puedes ejecutar tu código C/C++.
URL de API HTTP para enviar SMS desde C/C++
Para enviar SMS desde C/C++, tu código C/C++ tendrá que realizar una solicitud HTTP al gateway de SMS. La URL de la API se muestra a continuación. Ten en cuenta que la dirección IP (127.0.0.1) debe reemplazarse por la dirección IP de tu gateway de SMS. Si Ozeki SMS Gateway está instalado en la misma computadora donde se ejecuta la aplicación C/C++ para SMS, puede ser 127.0.0.1. Si está instalado en una computadora diferente, debe ser la dirección IP de esa computadora.
http://127.0.0.1:9509/api?action=rest
Autenticación HTTP para enviar SMS desde C/C++
Para autenticar el cliente de SMS en C/C++, necesitas enviar el nombre de usuario y la contraseña en una cadena codificada en base64 al servidor en una solicitud HTTP. El formato utilizado es: base64(nombredeusuario+":"+contraseña). En C/C++ puedes usar el siguiente código para hacer esta codificación:
string usernamePassword = username + ":" + password; string usernamePasswordEncoded = base64::encode(usernamePassword); return "Basic " + usernamePasswordEncoded;
Por ejemplo, si codificas el nombre de usuario 'http_user' y la contraseña 'qwe123', obtendrás la siguiente cadena codificada en base64: aHR0cF91c2VyOnF3ZTEyMw==. Para enviar
Encabezado de solicitud HTTP para enviar SMS desde C/C++
Para enviar los mensajes SMS, debes incluir las siguientes líneas como encabezados en la solicitud HTTP. Ten en cuenta que incluimos un tipo de contenido y un encabezado de Autorización.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Solicitud HTTP para enviar SMS desde C/C++
Para enviar el SMS, tu aplicación C/C++ enviará una solicitud HTTP similar a la que se muestra a continuación. Ten en cuenta que esta solicitud contiene una parte de encabezado HTTP y una parte de cuerpo HTTP. El cuerpo HTTP es una cadena de datos codificada en JSON. Contiene el número del destinatario y el texto del mensaje.
POST /api?action=sendmsg HTTP/1.1 Content-Length: 320 Content-Type: application/json Accept: application/json Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 { "messages": [ { "create_date": "2021-06-29T07:55:54", "message_id": "hbfc030d-68b7-a1i0-6e96-6jgkqml6rnt9", "submit_delivery_requested": true, "submit_report_requested": true, "submit_view_requested": true, "text": "¡Hola mundo!", "time_to_send": "2021-06-29T07:55:54", "to_address": "+36201111111", "valid_until": "2021-07-06T07:55:54" } ] }
Respuesta HTTP recibida por el ejemplo de SMS en C/C++
Una vez que el gateway de SMS recibe esta solicitud, generará una respuesta HTTP. La respuesta HTTP contendrá un código de estado para indicar si la solicitud de envío de SMS fue exitosa o no. También devolverá una estructura codificada en JSON para proporcionarte detalles útiles sobre el envío del mensaje.
HTTP/1.1 200 OK User-Agent: OZEKI 10.3.123 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Mon, 28 Jun 2021 16:58:02 GMT Server: 10/10.3.123 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Mensajes en cola para entrega.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "hbfc030d-68b7-a1i0-6e96-6jgkqml6rnt9", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "¡Hola mundo!", "create_date": "2021-06-29 07:55:54", "valid_until": "2021-07-06 07:55:54", "time_to_send": "2021-06-29 07:55:54", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Conecta tu gateway de SMS a la red móvil y crea una cuenta de usuario de API HTTP (Tutorial en video)
Asumimos que ya has instalado Ozeki SMS Gateway, y que has conectado a la red móvil. Para poder enviar SMS a un teléfono móvil desde C#, necesitas configurar una cuenta de usuario de API HTTP en Ozeki SMS Gateway. En este video, te mostraremos cómo hacerlo. El video comenzará con la adición de un nuevo usuario y terminará con la API HTTP funcionando. También aprenderás a cambiar el nivel de registro de la API. Este video de 30 segundos es fácil de seguir y detallado, además estamos usando Ozeki SMS Gateway que ofrece una interfaz de usuario intuitiva. No tendrás problemas para seguir el tutorial.
Cómo enviar SMS desde C/C++ usando la API de SMS para C/C++ (Tutorial en video)
Este video te muestra cómo descargar el archivo SendSms.cpp.zip desde esta página y cómo extraer su contenido en Visual Studio. Si ves el video, notarás que el contenido del zip SendSms.cpp se coloca en el escritorio de Windows. También verás que hacemos doble clic en el archivo de solución sendsms.sln para abrir la solución. Visual Studio mostrará algunas advertencias porque el archivo proviene de la web. Simplemente haz clic en OK para evitar estas advertencias.
Ejemplo de SMS en C/C++: SendSms.sln
El código de ejemplo a continuación es parte de la Solución de Visual Studio SendSms.sln. Una solución de Visual Studio puede contener múltiples proyectos y múltiples archivos. En esta solución solo hay un proyecto: SendSms.vcxproj, y un archivo: SendSms.cpp.
Cómo verificar que el SMS ha sido aceptado por el usuario HTTP
Después de enviar el SMS, es una buena idea verificar tu gateway de SMS, para ver qué ha recibido. Puedes verificar el registro abriendo los detalles del usuario HTTP desde la consola de administración de Ozeki SMS Gateway. El siguiente video te muestra qué buscar. El video comenzará con Ozeki SMS Gateway abierto y terminará con el menú de Eventos. Aprenderás dónde hacer clic y dónde buscar el registro del usuario HTTP. El video de 34 segundos es detallado pero muy fácil de entender. No te perderás en la interfaz de usuario, porque Ozeki SMS Gateway ofrece una muy intuitiva.
Cómo verificar que el SMS ha sido enviado a la red móvil
El paso final para verificar el procedimiento es revisar los registros de la conexión a la red móvil. Es posible que debas activar el registro en la configuración de la conexión antes de enviar el mensaje para ver los registros. Si el registro está activado, verás el número de teléfono y el texto del mensaje que has enviado.
Recibir un SMS en Android
En este video, vas a ver el proceso de recibir un mensaje SMS en Android. El video de 18 segundos comenzará con una página de inicio común de Android y te mostrará la notificación en caso de un mensaje entrante. También aprenderás cómo abrir la aplicación Mensajes, donde puedes obtener más información sobre el mensaje y responderlo. El proceso es fácil de entender, y el video lo muestra en su totalidad.
En resumen
Este artículo está escrito para enseñarte cómo enviar SMS desde C/C++ usando el usuario de API HTTP de Ozeki SMS Gateway. La conexión de usuario HTTP en Ozeki SMS Gateway te ofrece una conexión muy confiable y una velocidad increíble para ayudar a que tu negocio funcione sin problemas. Esta solución puede hacer que tu organización sea más eficiente porque te permite enviar mensajes SMS importantes rápida y fácilmente a través de tu aplicación C/C++.
Hay muchos más artículos para ayudarte, así que asegúrate de seguir leyendo. Continúa con el tutorial Cómo enviar múltiples SMS desde C/C++ y aprende más.
¡Comienza a usar Ozeki SMS Gateway ahora! Descárgalo desde la página web de Ozeki.
More information
- C/Cpp enviar SMS con la API REST HTTP (ejemplo de código)
- C/Cpp enviar múltiples SMS con la API REST HTTP (ejemplo de código)
- C/Cpp programar SMS con la API REST HTTP (ejemplo de código)
- C/Cpp recibir SMS con la API REST HTTP (ejemplo de código)
- C/Cpp eliminar SMS con la API REST HTTP (ejemplo de código)
- Cómo descargar la última biblioteca de API SMS C/Cpp desde Github