
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.
Enviar un SMS desde una hoja de cálculo Excel
Introducción
Microsoft ofrece una forma de añadir nuevas funcionalidades a las aplicaciones de Office, como Microsoft Excel, para preguntar e interactuar con el usuario de forma específica para las necesidades de su empresa. Puede realizar estas tareas y muchas más utilizando Visual Basic for Applications (VBA). Se trata de un lenguaje de programación sencillo pero potente que puedes utilizar para hacer cosas como pasar tus contactos de Microsoft Outlook a una hoja de cálculo de Microsoft Excel.
En esta entrada del blog, vamos a utilizar VBA en Microsoft Excel para enviar un mensaje SMS. Sólo tiene que introducir el número de teléfono móvil y el texto que desea enviar y pulsar un botón para enviarlo. Podrías modificar el código para añadir funcionalidades adicionales que tu negocio pueda requerir, como la programación. ¡Empecemos!
Crear una cuenta de desarrollador de Vonage
Necesitaremos crear una cuenta de desarrollador de Vonage para enviar mensajes SMS desde Vonage. Una vez que crees una Account, encontrarás tu API Key y API Secret en el Panel de API de Vonage en Configuración de API. Una vez que tengas esos valores, guárdalos en un lugar seguro, ya que los usaremos en breve.
Consulta la documentación de SMS API de Vonage
Antes de empezar a codificar, debemos consultar la documentación de SMS API de Vonage para examinar qué campos espera la API que proporcionemos cuando se la llama. Al visitar la documentación, podemos ver que se admiten varios SDK de programación. Como Excel sólo utiliza VBA, tendremos que llamar al punto final REST que proporciona Vonage.
Después de examinar el fragmento de código REST, podemos ver que hay varios campos obligatorios, como:
A
fromnúmeroA
tonúmeroLa dirección
textque desea enviar.Un
api_keyyapi_secretque deberías tener del paso anterior.
El siguiente ejemplo cURL muestra el aspecto que tiene cuando se llama.
Si ejecutas este código con información y credenciales válidas, verás aparecer la siguiente salida en tu terminal:
{
"messages": [
{
"to": "14259999999",
"message-id": "3c153507-8ade-4bd1-ab6f-12cb6f7f9efe",
"status": "0",
"remaining-balance": "39.08381985",
"message-price": "0.00869000",
"network": "310260"
}
],
"message-count": "1"
}Tenga en cuenta que status devuelve un código de estado 0, lo que significa que se ha enviado correctamente. Si lo has enviado a tu número de teléfono, debería haber aparecido un mensaje de texto. A continuación, vamos a configurar Microsoft Excel.
Configurar nuestra hoja de cálculo Excel
Como ya se ha indicado, Microsoft Excel puede utilizar VBA (Visual Basic for Applications) para interactuar con los datos mediante programación. Empecemos creando una hoja de cálculo con un par de filas de datos que contengan los números a los que queremos enviar los mensajes de texto y el mensaje que queremos enviar.
Empecemos creando una hoja de cálculo con un par de filas de datos que contengan el número al que queremos enviar el mensaje de texto, así como el mensaje que queremos que se envíe.
Estructure su hoja Excel de la siguiente manera:
A1 y A2 incluirán los números de móvil.
B1 y B2 incluirán el texto que debe enviarse.
H1 incluirá el texto "API Key".
H2 incluirá el texto "API Secret".
I1 es tu clave de API del panel de API de Vonage.
I2 es tu secreto de API desde el panel de API de Vonage.
I3 será un botón que diga "Enviar SMS" (hablaré de la creación del botón en breve).
Dé un nombre a su hoja de cálculo, por ejemplo
Numbers.
Ahora deberías tener una pantalla parecida a la siguiente.
ExcelStart.png
Activación y configuración del modo de desarrollador en Microsoft Excel
Necesitamos añadir una opción para ver el Desarrollador para utilizar VBA. Puede activar esta opción yendo a Archivo -> Opciones -> Personalizar cinta y marcando la opción Desarrollador como se muestra a continuación.
ExcelDevMode.png
El Desarrollador debería aparecer en la barra de menús. Selecciónela y, a continuación, la opción Visual Basic para permitir la introducción de código en el sistema.
VisualBasic.png
Aparecerá una nueva ventana con Microsoft Visual Basic for Applications en ejecución. Seleccione Insertar en las opciones del Menú y seleccione Módulo para introducir el código Visual Basic que interactúa con la hoja Excel.
NewModule.png
Necesitamos añadir una Referencia al archivo Microsoft XML 6.0 que nos permitirá llamar a un REST Endpoint. Vaya a Herramientas -> Referencia y marque Microsoft XML, v6.0como se muestra a continuación:
AddReference.png
Cómo agregar código VBA para llamar a SMS API de Vonage
Copia y pega el siguiente bloque de código en tu aplicación y fíjate en los comentarios que he dejado que describen lo que hace cada sección.
Sub SendSMS()
'Authentication
ApiKey = ActiveSheet.Range("I1").Value
ApiSecret = ActiveSheet.Range("I2").Value
'Define our Worksheet so we can loop through the data for the number and message to send.
Dim wb As Workbook
Dim ws As Worksheet
Set wb = ThisWorkbook
Set ws = wb.Worksheets("Numbers")
'Loop through Worksheet content - I only had two rows in this example, but you can modify this to your needs.
For i = 1 To 2
toNumber = ws.Range("A" & i).Value 'our number to text
bodyText = ws.Range("B" & i).Value 'the text we wish to send
'Use Microsoft's XML Library to make a web request.
Set Request = CreateObject("MSXML2.ServerXMLHTTP.6.0")
'Concatenate the required data that Vonage's REST Endpoint is expecting.
Url = "https://rest.nexmo.com/sms/json?from=18335787204" & "&to=" & toNumber & "&text=" & bodyText & "&api_key=" & ApiKey & "&api_secret=" & ApiSecret
'Open POST Request
Request.Open "POST", Url, False
'Set the Request Header
Request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
'Send Request
Request.send Url
Next i
'OPTIONAL: You can get the response text after a message is sent by calling MsgBox Request.responseText
End Sub
Por último, tenemos que añadir un Botón para activar este evento. Seleccione Insertar en el Menú ProgramadorHaga clic en Botóny colóquelo en I3.
ExcelButton.png
Una vez que suelte el ratón, se le pedirá que Asignar macro a ese Botón. Seleccione el botón SendSMS que acabamos de pegar, como se muestra a continuación, y pulse OK.
AssignMacro.png
¡Es hora de probarlo! Asegúrese de que tiene un número de teléfono válido para su ubicación en A1 y A2 y texto en B1 y B2, y pulse el botón EnviarSMS .
ExcelStart.png
Si todo ha ido bien, debería haber recibido un texto con la información facilitada en la hoja de cálculo.
Resumen
VBA es muy eficaz y eficiente en cuanto a soluciones para productos relacionados con Microsoft Office, como hemos visto hoy. Mientras investigaba para esta entrada del blog, me enteré de que lleva utilizándose casi treinta años. Esto me hace confiar en que se trata de una plataforma madura; lo más probable es que otros ya se hayan encontrado con los mismos problemas que yo.
Si quieres hacer esto en Google Sheets, debes buscar aquí. Google Sheets y Microsoft Excel comparten muchas similitudes, y usarás la misma gran API de SMS de Vonage que se discute aquí.
Como siempre, si tienes preguntas o comentarios, únete a nosotros en el Slack para desarrolladores de Vonage. Gracias nuevamente por leer, ¡y te espero en la próxima!
Compartir:
Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.