
Compartir:
Jẹ́káyinOlúwa is a software craftsman and product manager passionate about technology and its impact on people. He works on product management, backend development, DevOps, technical writing, and community strategy. He enjoys dealing in the intersection of software, design, and human interaction. He likes reading and music.
Cómo recibir mensajes SMS en Python
Tiempo de lectura: 13 minutos
Este artículo se actualizó en agosto de 2025
Introducción
Este tutorial te mostrará cómo recibir mensajes SMS en Python con ayuda de la API de Vonage.
Vonage tiene dos API diferentes para recibir SMS: la SMS API, utilizada estrictamente para la mensajería SMS, y la Messages API, que te permite usar otros canales como WhatsApp. En este tutorial, utilizaremos la Messages API para recibir mensajes SMS entrantes con Python.
Los mensajes SMS entrantes se recibirán a través de un webhook de acceso público webhook. Este artículo te mostrará cómo configurar ese webhook y conectarlo con tu Account de Vonage.
Requisitos previos
Para crear una aplicación Python para recibir mensajes SMS entrantes, necesitarás los siguientes programas.
Python
Se necesita Python para utilizar la biblioteca Flask. Visite la página oficial de descargas de página de descargas de Python para descargar una versión de Python que se adapte a tus necesidades.
Frasco
Utilizarás Flask para escribir tu webhook. Antes de instalar Flask, crea el directorio de tu proyecto y navega en él de la siguiente manera:
mkdir receive_sms
cd receive_smsPuedes instalar Flask con el gestor de paquetes pip que viene instalado con Python. Utiliza el siguiente comando de terminal para instalar Flask dentro de la carpeta recién creada.
pip install flask API de Vonage
Para usar la API de Messages API de Vonage, necesitarás una cuenta de API de Vonage. Ingresa a tu panel de la API de Vonage para localizar tu clave y secreto de la API, que se encuentran en la parte superior de la página.
CLI de Vonage
El CLI de Vonage puede usarse para comprar un número virtual de Vonage en lugar de comprarlo en la interfaz de usuario de tu panel de control. También se puede usar para enviar un SMS de prueba.
Instala la CLI de Vonage globalmente en tu terminal ejecutando este comando:
Para comprar un número de teléfono de Vonage a través de la CLI, primero configura tus credenciales de API con vonage config:set --apiKey=XXXXXX --apiSecret=XXXXXXluego busca números disponibles con vonage numbers:search [Alpha-2 Country Code] y compra uno con vonage numbers:buy [Number] [Country Code].
También puede adquirir un número directamente a través de la página Comprar Numbers de su panel de control.
Cómo recibir mensajes SMS en Python con la API de Vonage
Una vez que hayas instalado correctamente Python, Flask y la CLI de Vonage, estás listo para comenzar. A continuación, explicaremos cómo usar estas herramientas para que Python pueda recibir mensajes de texto de la API de Vonage. Para crear una aplicación Python que reciba mensajes SMS, simplemente sigue estos 4 pasos:
Crear un webhook para SMS entrantes
Hacer pública la URL del webhook
Configura tu Account de Vonage
Enviar y recibir un SMS de prueba
1. Crear el Webhook para SMS entrantes
El primer paso para recibir un SMS en Python es crear un webhook para los mensajes de texto entrantes.
Al recibir un mensaje SMS en tu cuenta de Vonage, Vonage verifica si tienes un webhook instalado. Si encuentra un webhook, puede reenviar el mensaje a tu aplicación. Puedes configurar el webhook para que funcione para un solo número o para todos los números de tu Account.
Para manejar los mensajes entrantes, su manejador webhook será diseñado para aceptar una POST solicitud. Para facilitar esto, crearás un endpoint Flask dedicado a gestionar las peticiones entrantes.
Cree un archivo sms-receive.py en tu proyecto Flask y añade el siguiente código:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route("/webhooks/inbound-message", methods=['POST'])
def inbound_message():
if request.is_json:
data = request.get_json()
print(data)
else:
data = dict(request.form) or dict(request.args)
print(data)
return "200"
if __name__ == '__main__':
app.run(host="", port=3000)Vamos a descomprimir esto para ver cómo funciona este código. En el fragmento de código anterior:
Ha definido un punto final de webhook llamado
/webhooks/inbound-message. Este punto final es responsable de recibir y analizar los datos contenidos en las cargas útiles de los mensajes entrantes.
@app.route("/webhooks/inbound-message", methods=['POST'])
def inbound_message():El método
request.get_json()se utiliza para verificar si la solicitud está en formato JSON. En caso de que la petición no esté en formato JSON, los pares clave/valor del cuerpo de la petición o de la cadena de consulta de la URL se recuperan utilizandorequest.formyrequest.argsrespectivamente.
if request.is_json:
data = request.get_json()Los datos de la solicitud se analizan y almacenan en la variable
datay luego se imprimen en el terminal medianteprint.
data = request.get_json()
print(data)Por último, indica que la aplicación se ejecute y sirva en el puerto 3000.
if __name__ == '__main__':
app.run(host="", port=3000) Hacer pública la URL de Webhook
Para recibir mensajes SMS entrantes, el punto final de webhook de tu aplicación Python debe ser accesible a través de la Internet pública. Esto permite que Vonage realice una solicitud a tu punto final cada vez que se recibe un SMS.
Normalmente, en el modo de producción, se necesitaría un servidor con un dominio público para anexar el endpoint. Sin embargo, para las pruebas en modo de desarrollo, utilizaremos ngrok para imitar el entorno del servidor.
Puede descargar o instalar ngrok desde el sitio web oficial oficial. Visite sitio web de ngrok para conocer los límites de su plan gratuito.
A continuación, ejecute ngrok en su terminal:
Una vez lanzado ngrok, te generará una URL pública similar a la siguiente:
A continuación, puede añadir su punto final a las URL ngrok recién generadas para formar sus URL webhook de la siguiente manera:
Ahora, necesitará esta URL cuando cree su aplicación en la siguiente sección de este tutorial.
Configurar cuenta de Vonage
Luego, deberás configurar tu cuenta de Vonage para usar la API correcta para la mensajería SMS. Utilizaremos la Messages API para nuestra aplicación en lugar de la SMS API.
Para ajustar esta configuración, vaya a su panel de control configuración del panel de control. A continuación, vaya a la sección Configuración de SMS para seleccionar Messages API.
Messages
A continuación, vaya a la sección Aplicaciones para crear una aplicación.
Haga clic en el botón + Crear aplicación Crear aplicación.
Introduzca el nombre que desee en el campo Nombre que desee.
En la sección Capacidades, seleccione Mensajes e introduzca su webhook URL de entrada. Puede consultar nuestro tutorial sobre cómo configurar la URL de estado para aceptar el estado de entrega de los SMS salientes.
Messages Webhooks
Haga clic en Generar nueva solicitud para completar el proceso. Se le redirigirá a la página de la solicitud recién creada. En esta página, puede vincular su número o pagar por un número virtual.
4. Enviar y recibir un mensaje SMS de prueba
Su aplicación ya está lista para recibir mensajes SMS. Tu servidor ngrok se está ejecutando en el puerto 3000y has configurado tu aplicación con un número virtual en tu cuenta de Vonage.
Ahora, puede iniciar la aplicación Flask en otra ventana de terminal para mantener la ventana de terminal anterior en ejecución con ngrok.
Ejecutando este comando, tu aplicación Flask se lanzará en el puerto local de tu host 3000. Este puerto será detectado automáticamente por ngrok, permitiéndole servir su aplicación a la Internet pública usando la URL pública de ngrok.
Ahora, utiliza el siguiente comando CLI de Vonage para enviar un SMS de prueba a tu número de Vonage en tu terminal.
En la ventana de terminal que está ejecutando tu aplicación Python, deberías ver que tu webhook ha recibido el SMS entrante:
También recibirá el mensaje SMS en su teléfono móvil como en la siguiente captura de pantalla:
SMS Screenshot
Conclusión
A lo largo de este tutorial, has descubierto el proceso de recepción de mensajes SMS entrantes utilizando Python. Ahora, puedes integrar la API Messages API de Vonage en tus aplicaciones Python y comenzar a usar estas aplicaciones para manejar mensajes de texto entrantes.
¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.
Lecturas complementarias
Consulta los recursos de Vonage para obtener más información sobre Messages API:
Compartir:
Jẹ́káyinOlúwa is a software craftsman and product manager passionate about technology and its impact on people. He works on product management, backend development, DevOps, technical writing, and community strategy. He enjoys dealing in the intersection of software, design, and human interaction. He likes reading and music.