Cómo recibir SMS en C#
La forma más sencilla de enviar SMS desde 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# para recibir SMS desde un móvil
El ejemplo de código C# para SMS a continuación demuestra cómo puedes recibir SMS usando la API HTTP Rest de SMS de Ozeki SMS Gateway con la biblioteca C# Ozeki.Libs.Rest. Esta biblioteca se proporciona gratuitamente y puedes usarla y modificarla en cualquiera de tus proyectos.
Program.csusing Ozeki.Libs.Rest; using System; namespace ReceiveSms { class Program { static void Main(string[] args) { var configuration = new Configuration() { Username = "http_user", Password = "qwe123", ApiUrl = "http://127.0.0.1:9509/api" }; var api = new MessageApi(configuration); var messages = api.DownloadIncoming(); Console.WriteLine(messages.Length + " mensajes descargados de la bandeja de entrada."); foreach(Message msg in messages) { Console.WriteLine(msg); }; Console.ReadKey(); } } }
Cómo usar el ejemplo de SMS en C#:
Este ejemplo de SMS en C# puede usarse en cualquier aplicación .NET o .NET Core. Para usarlo, debes agregar el archivo 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 en C#. Esto te permitirá usar las clases proporcionadas por la biblioteca Ozeki.Libs.Rest. Puedes usar la clase MessageApi para recibir el SMS del gateway de SMS. El gateway de SMS enviará el mensaje a través de una conexión inalámbrica o por Internet.
Descargar ReceiveSms.cs
El código fuente explicado en este artículo se puede descargar, usar y modificar gratuitamente.
Descargar: ReceiveSms.cs.zip (33.8Kb)
¿Qué contiene el archivo ReceiveSms.cs.zip?
El archivo ReceiveSms.cs.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 ReceiveSms en el zip, que incluye el código de ejemplo para mostrarte cómo recibir un SMS. Este código de ejemplo se muestra a continuación.
Cómo recibir SMS en C# (Guía rápida)
Para recibir SMS en C#:
- Configura Visual Studio Community
- Descarga el archivo ReceiveSms.cs.zip
- Extrae el archivo .zip de la carpeta de Descargas
- Abre el archivo ReceiveSms.sln en Visual Studio
- Inicia Ozeki SMS Gateway
- Haz clic en HTTP user en la pestaña Users and applications
- Ejecuta Program.cs para recibir SMS en C#
- Revisa la bandeja de entrada en Ozeki SMS Gateway
Instala Ozeki SMS Gateway y crea un usuario HTTP API
Para poder enviar y recibir SMS desde C#, primero necesitas instalar Ozeki SMS Gateway. El gateway de SMS puede instalarse en la misma computadora donde desarrollas tu código en C# con 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 interfaz gráfica 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 HTTP API 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 en C#.
URL de la API HTTP para recibir SMS desde C#
Para enviar SMS desde C#, tu aplicación en C# tendrá que hacer 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 de SMS en C#, puede ser 127.0.0.1. Si está instalado en otra computadora, debe ser la dirección IP de esa computadora.
http://127.0.0.1:9509/api?action=rest
Autenticación HTTP para recibir SMS desde C#
Para autenticar el cliente de SMS en 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# puedes usar el siguiente código para hacer esta codificación:
var encoding = Encoding.GetEncoding("iso-8859-1"); var usernamePassword = username + ":" + password; var usernamePasswordEncoded = Convert.ToBase64String(encoding.GetBytes(usernamePassword));
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
Solicitud HTTP para recibir SMS con C#
Para recibir SMS, tu aplicación en 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.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Connection: Keep-Alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509
Encabezado de solicitud HTTP para recibir SMS desde 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==
Respuesta HTTP recibida por el ejemplo de SMS en 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 el envío del SMS fue exitoso 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.116 (www.myozeki.com) Content-Type: application/json; charset=utf8 Last-Modified: Mon, 07 Jun 2021 14:10:25 GMT Server: 10/10.3.116 Transfer-Encoding: chunked { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "b754195d-9bd8-48dc-a45f-cf688c5b32e3", "from_connection": "http_user@localhost", "from_address": "+36201111111", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello, World 1", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "a6337c23-51bc-43ee-9181-c9838abbe161", "from_connection": "http_user@localhost", "from_address": "+36202222222", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello, World 2", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] }, { "message_id": "ca14710b-42b9-4abc-b04f-262cc282dd7c", "from_connection": "http_user@localhost", "from_address": "+36203333333", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello, World 3", "create_date": "2021-06-08 09:12:24", "valid_until": "2021-06-15 09:12:24", "time_to_send": "0001-01-01 00:00:00", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ] } ] } }
Cómo recibir SMS con C# usando la API de SMS en C# (Tutorial en video)
Este video te muestra cómo crear un nuevo proyecto de consola .NET Core en Visual Studio, cómo nombrarlo como ReceiveSms.sln. Una vez creada la solución, notarás que se agrega un Receive-SMS.csproj a la solución y, por defecto, se abre el archivo Program.cs. Puedes renombrar Program.cs a ReceiveSMS.cs si lo deseas. También verás en el video cómo el código de ejemplo a continuación puede copiarse en el archivo Program.cs y cómo puede compilarse y ejecutarse.
Ejemplo de SMS en C#: ReceiveSms.sln
Cómo descargar y ejecutar el proyecto de ejemplo (Tutorial en video)
En este video, aprenderás cómo descargar y ejecutar el proyecto de ejemplo ReceiveSMS.sln. El video comenzará con la página de descarga y terminará con el editor de código abierto. Aprenderás cómo descargar y dónde encontrar tu proyecto de ejemplo. También te mostraremos cómo abrir el proyecto descargado. Este video solo dura 1 minuto pero es muy detallado, por lo que no tendrás problemas para seguir los pasos.
El código de ejemplo a continuación es parte de la solución de Visual Studio ReceiveSms.sln. Una solución de Visual Studio puede contener múltiples proyectos y múltiples archivos. En esta solución solo hay un proyecto: ReceiveSms.csproj, y un archivo: Program.cs.
Cómo usar el código (Tutorial en video)
En el siguiente video, aprenderás cómo ejecutar el código de ejemplo y cómo revisar el registro del proceso. Comenzará con el lanzamiento de Ozeki SMS Gateway y te llevará hasta la pestaña de eventos. Aprenderás cómo revisar el registro, cómo ejecutar tu código y cómo verificar los mensajes recibidos. El video solo dura 1 minuto pero contiene toda la información necesaria para usar el proyecto ReceiveSMS.sln.
Ejecutando el ejemplo de SMS en C# en Windows
Cuando usas Windows para ejecutar este ejemplo de SMS escrito en C#, notarás que obtienes un rendimiento ligeramente mejor que cuando lo ejecutas en Linux. Para entender por qué ocurre esto, debes tener en cuenta que C# usa el framework .NET para la ejecución del código. Esto se debe a que la implementación de .NET en Windows está optimizada para el rendimiento, mientras que mono, la implementación de .NET en Linux, tiene un poco de retraso en este campo.
Conclusión
Este artículo mostró los pasos necesarios para recibir SMS en C#. Con esta guía y Ozeki SMS Gateway, recibir SMS en C# ya no será un problema. Estudia la guía con cuidado y podrás realizar estos pasos fácilmente. Ozeki SMS Gateway es crucial en este procedimiento, ya que sirve como conector entre los usuarios móviles y tú. El hecho de que Ozeki SMS Gateway se ejecute en un entorno que controlas debe destacarse porque significa que tu lista de contactos y datos están seguros.
Continúa leyendo en la página de tutoriales de Ozeki, donde encontrarás más guías sobre temas como programar envíos desde C#.
Descarga Ozeki SMS Gateway ahora y ¡que comience el trabajo!
More information