
Cómo recibir mensajes SMS con ASP.NET MVC Framework
Mi tutorial anterior explicaba cómo utilizar la librería de cliente Vonage C# de Vonage para enviar tu primer mensaje SMS desde una aplicación web ASP.NET MVC. En esta continuación, continúo explorando la plataforma de Vonage al mostrar cómo recibir mensajes SMS en un número de teléfono de Vonage usando la biblioteca de clientes de C#.
Requisitos
Visual Studio 2017 RC
Máquina Windows
A proyecto inicial creado en la anterior entrada del blog
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.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
Recibir Webhooks en su Localhost con Ngrok
La API de SMS de Vonage utiliza webhooks para informar a tu aplicación web ASP.NET que se ha enviado un mensaje de texto entrante a uno de tus números de teléfono de Vonage. Para ello, Vonage debe poder realizar una solicitud HTTP a una URL pública. Como estamos desarrollando nuestra aplicación en nuestra máquina local, necesitamos crear un túnel local que le dé a nuestra máquina una URL pública. Utilizaremos ngrok para exponer el puerto en Internet y comunicarnos fácilmente con la plataforma de Vonage durante esta fase de prueba. Este enfoque te ahorra tener que implementar tu aplicación.
Descargue ngrok y ejecute el siguiente comando en Símbolo del sistema (sustituya el número de puerto por el número del puerto en el que desea ejecutar la aplicación).

El comando anterior permite que su servidor local (que se ejecuta en el puerto anterior) tenga una URL pública que se utilizará para reenviar los textos entrantes (peticiones HTTP) de vuelta a su servidor local. Es necesario especificar la cabecera host para asegurarse de que la cabecera host de la aplicación y ngrok coinciden y para garantizar que las solicitudes no serán rechazadas.
Sumergirse en el código
En el tutorial anterior, creamos un proyecto ASP.NET MVC y añadimos otro controlador llamado SMSController.cs. A continuación, creamos dos métodos de acción. Un método era presentar la vista para los detalles del SMS (número de destino y texto del mensaje) y el otro era recuperar los valores del formulario y enviar un SMS.
Continuando con el proyecto de la entrada anteriorvamos a crear un método método de acción llamado 'Recibir' en SMSController.cs. Esta ruta estará recibiendo los datos SMS entrantes ya que estaremos configurando el webhook de Vonage (más adelante en este tutorial) a nuestra URL ngrok con la ruta de 'SMS/Receive'.
Añade [FromUri] en el parámetro para leer los SMS entrantes. Para poder utilizar [FromUri], es necesario instalar el siguiente paquete: Microsoft.AspNet.WebApi.Core. Sobre este método, agrega un HTTPGetAttribute para restringir el método a fin de que sólo acepte solicitudes GET. Si el valor de response.to (el número de teléfono de Vonage) y msidsn (el remitente) no es nulo, imprime el mensaje en la ventana de salida mediante Debug.WriteLine. De lo contrario, el punto final fue alcanzado como resultado de algo distinto a un SMS entrante. (Esto puede suceder cuando configuras tu webhook por primera vez. Lo veremos en breve).
[System.Web.Mvc.HttpGet]
public ActionResult Receive([FromUri]SMS.SMSInbound response)
{
if (null != response.to && null != response.msisdn)
{
Debug.WriteLine("-------------------------------------------------------------------------");
Debug.WriteLine("INCOMING TEXT");
Debug.WriteLine("From: " + response.msisdn);
Debug.WriteLine(" Message: " + response.text);
Debug.WriteLine("-------------------------------------------------------------------------");
return new HttpStatusCodeResult(200);
}
else {
Debug.WriteLine("-------------------------------------------------------------------------");
Debug.WriteLine("Endpoint was hit.");
Debug.WriteLine("-------------------------------------------------------------------------");
return new HttpStatusCodeResult(200);
}
}
Ejecutar la aplicación web ASP.NET
En el Explorador de soluciones, expanda el proyecto y haga clic en Propiedades. Haga clic en el botón Web y cambie la URL del proyecto al mismo puerto que está exponiendo a través de ngrok. Por último, ejecute el proyecto.

Configurar la URL del webhook de devolución de llamada SMS para tu número de Vonage
Ahora usa la CLI de Vonage para crear una aplicación de Vonage y un webhook para ella.
Instala la CLI de Vonage globalmente con este comando:
npm install @vonage/cli -gLuego, configura la CLI con tu clave y secreto de API de Vonage. Puedes encontrar esta información en el Panel del desarrollador.
vonage config:set --apiKey=VONAGE_API_KEY --apiSecret=VONAGE_API_SECRET Crear una aplicación Voice
Cree un nuevo directorio para su proyecto y CD en él:
mkdir my_project
CD my_projectAhora, utiliza la CLI para crear una aplicación de Vonage.
Ahora necesitas un número para poder recibir llamadas. Puedes alquilar uno utilizando el siguiente comando (sustituyendo el código del país por tu código). Por ejemplo, si estás en EE.UU., sustituye GB por US:
Ahora vincula el número a tu aplicación:
vonage apps:link --number=VONAGE_NUMBER APP_ID Recibir un SMS con ASP.NET
Ya está listo. Con tu aplicación web ASP.NET en funcionamiento, abre la ventana de salida en Visual Studio. Envía un SMS a tu número de teléfono de Vonage y verás los mensajes entrantes. Tu aplicación web ASP.NET puede recibir mensajes SMS enviados a tu número de teléfono de Vonage a través de un webhook entrante.
No dude en ponerse en contacto a través de correo electrónico o Twitter si tiene alguna pregunta.
