Recibir SMS en Python

Este documento te proporciona información útil sobre cómo puedes obtener los mensajes recibidos por el SMS Gateway utilizando tu aplicación en Python. El ejemplo de SMS en Python muestra cómo recopila los mensajes de tu carpeta de entrada mediante solicitudes HTTP y cómo los hace disponibles para su uso posterior. La página incluye un tutorial en video y una guía paso a paso que no toma más de cinco minutos en completarse. ¡Comencemos ahora mismo!

¿Qué es una API de SMS en Python?

La API de SMS en Python crea la oportunidad de enviar mensajes SMS desde un script en Python. Al usar esta API de SMS en Python, tu script en Python puede enviar solicitudes HTTP al SMS Gateway que envía el mensaje SMS.

Requisitos previos

Recibir SMS en Python

  1. Abre la aplicación Notepad
  2. Copia y pega el código de ejemplo de esta página
  3. Guarda el archivo como ReceiveSMS.py
  4. Abre Ozeki SMS Gateway y selecciona la conexión HTTP Server
  5. Abre el formulario HTML de la conexión HTTP Server
  6. Envía algunos mensajes de prueba
  7. Abre el Símbolo del sistema
  8. Escribe 'python ReceiveSMS.py' en el Símbolo del sistema y presiona Enter

Video 1 - Cómo recibir SMS en Python (Tutorial en video)

Este código fuente de ejemplo en Python a continuación es gratuito para usar en tus proyectos y puedes modificarlo también para que se ajuste a tu solución. El código inicia una solicitud HTTP para obtener los mensajes del SMS Gateway. Para probar el ejemplo, solo sigue las instrucciones a continuación o mira el tutorial en video que demuestra claramente todos los pasos que deben realizarse para ejecutar el script de SMS en Python en tu computadora.

import requests
import ssl
import xml.etree.ElementTree as ET
 
def main():
    username = "john"
    password = "Xc3ffs"
    httpUrl = "https://127.0.0.1:9508/"
    folder = "inbox";
    limit = "3";
 
    sendString = (httpUrl + "api?action=receivemessage&username="
        + username + "&password="
        + password + "&folder=" + folder + "&limit="
        + limit + "&afterdownload=delete")
 
    print("Sending html request: " + sendString + "\n")
    requests.packages.urllib3.disable_warnings() 
 
    response = requests.get(sendString, verify=False)
    print("Http response received: ")
    DisplayMessages(response.text)
 
def DisplayMessages(response):
    root = ET.fromstring(response)
    if root.findall('data/message/*') == []:
        print('The inbox is empty')
        return
 
    for child in root.findall('data/message'):
        sender = child.find('originator').text
        text = child.find('messagedata').text 
        DisplayMessage(sender, text)
 
def DisplayMessage(sender, text):
    print(sender + ": " + text)
 
if __name__=="__main__":
   main()

Paso 1 - Abrir Notepad

El primer paso de esta guía es abrir Notepad en tu computadora. Esta aplicación es necesaria para crear el archivo en Python que ejecutarás al final de la guía. Entonces, como lo demuestra la Figura 1, simplemente haz clic en el icono de la aplicación Notepad en el escritorio para abrirla.

abrir notepad
Figura 1 - Abrir notepad

Paso 2 - Copiar el código en Python

A continuación, necesitas obtener el script de ejemplo en Python de esta página. Esta es una tarea fácil de realizar ya que solo necesitas copiarlo. Entonces, para hacerlo, simplemente ve al código de ejemplo en esta página, selecciona todo el código fuente y, como en la Figura 2, presiona Ctrl+C en tu teclado. Esta acción copia el código fuente a tu portapapeles y lo deja listo para colocarlo en un archivo de texto.

copiar código fuente del sitio web
Figura 2 - Copiar código fuente del sitio web

Paso 3 - Pegar el código en un archivo de texto

A continuación, necesitas pegar el código fuente en Python en el documento de texto que abriste en el Paso 1. Esta acción se puede realizar usando el atajo Ctrl+V, que pega el código fuente en el archivo de texto desde el portapapeles. Si lo has hecho correctamente, el código en Python estará en el archivo de texto como lo muestra la Figura 3.

pegar código fuente en notepad
Figura 3 - Pegar código fuente en notepad

Paso 4 - Guardar el texto como un archivo en Python

En este punto, tienes un archivo de texto que contiene el código fuente, pero aún no está en el formato de archivo correcto. Notepad puede guardar archivos en cualquier formato, así que puedes resolver este problema fácilmente. Entonces, selecciona la opción 'Guardar como' en Notepad, y guarda el archivo con la extensión '.py'. Este procedimiento se demuestra en la Figura 4.

guardar archivo python como receivesms py
Figura 4 - Guardar archivo python como ReceiveSMS.py

Paso 5 - Abrir el Símbolo del sistema

Ahora, el script en Python está listo para usar, pero necesitas un entorno donde puedas ejecutarlo. Para ese propósito, puedes simplemente usar el Símbolo del sistema. Para abrirlo, simplemente navega a la carpeta donde guardaste el archivo en Python con el Explorador de archivos, y como en la Figura 5, escribe 'cmd' en la barra de direcciones del Explorador de archivos. Si presionas Enter, el Símbolo del sistema aparecerá en una nueva ventana.

abrir símbolo del sistema
Figura 5 - Abrir símbolo del sistema

Paso 6 - Enviar algunos mensajes de prueba

Después de configurar el archivo en Python, necesitas algunos mensajes en tu carpeta de entrada. Para completar la prueba rápidamente, puedes simular mensajes entrantes con la conexión HTTP Server en SMS Gateway. Si aún no has configurado esta conexión, aquí puedes ver cómo configurar una conexión HTTP Server. Entonces, abre el SMS Gateway, y selecciona la conexión HTTP Server. En el menú de la conexión, abre el formulario HTML (Figura 6). Aquí, puedes escribir algunos mensajes al SMS Gateway estableciendo el destinatario como 'Ozeki'.

simular algunos mensajes entrantes
Figura 6 - Simular algunos mensajes SMS entrantes

Paso 7 - Ejecutar el script en Python

Lo último que necesitas hacer para completar esta guía es ejecutar el script en Python en el Símbolo del sistema. Para eso, simplemente escribe 'python *nombrearchivo*.py' en el Símbolo del sistema como puedes ver en la Figura 7 y presiona Enter. La ejecución del ejemplo de SMS en Python imprime la solicitud HTTP que fue iniciada por el programa en Python. Luego, también podrás ver los mensajes del SMS Gateway.

ejecutar código python en símbolo del sistema
Figura 7 - Ejecutar código python en símbolo del sistema

En resumen

En este artículo, has aprendido cómo usar un script en Python para recopilar mensajes de tu bandeja de entrada. Podrás construir un sistema que envíe solicitudes HTTP al Ozeki SMS Gateway y reciba todos los mensajes entrantes. Usar el Ozeki SMS Gateway para gestionar mensajes SMS es útil porque permite al usuario registrar mensajes SMS en una base de datos y ofrece varias capacidades de informes para proporcionar más información sobre tu comunicación por SMS.

Se pueden usar otros lenguajes de programación para comunicarse con el Ozeki SMS Gateway. Para aprender más sobre las capacidades del Ozeki SMS Gateway, no dudes en visitar más páginas de tutoriales como: Cómo usar Ruby para enviar mensajes SMS.

¡Todo lo que necesitas hacer es descargar el Ozeki SMS Gateway y comenzar a construir tu solución ahora mismo!