La integración de envío de SMS en aplicaciones es esencial para múltiples sectores, como comercio, atención al cliente y notificaciones automatizadas. Python, con su simplicidad y extensibilidad, es una herramienta ideal para implementar estas funcionalidades.
Utilizando la API de 360NRS, puedes gestionar el envío de SMS de manera rápida y eficiente, beneficiándote de una plataforma robusta que permite personalización, programación y seguimiento de mensajes.
Este artículo guiará paso a paso sobre cómo integrar la API de 360NRS en Python para enviar SMS, manejar respuestas del servidor y solucionar posibles errores.
Contenidos
Descripción de la API de 360NRS
Funcionalidades principales
La API de 360NRS ofrece:
- Autenticación segura: Utiliza tokens de autorización en el encabezado.
- Capacidades avanzadas: Permite mensajes personalizados, programados, y envío masivo.
- Gestión de respuestas: Proporciona estados detallados de los mensajes enviados.
- Soporte para variables dinámicas: Personaliza mensajes para múltiples destinatarios.
Aspectos clave de la API
Autenticación
Se utiliza un token de autorización en el encabezado:
Authorization: Basic YOUR_AUTH_TOKEN
Seguridad
La comunicación se realiza mediante HTTPS, asegurando la confidencialidad y protección de los datos transmitidos.
Manejo de solicitudes y respuestas
La API devuelve códigos de estado HTTP estándar, como 202 (Accepted)
para un envío exitoso y 400 (Bad Request)
para errores en la solicitud.
Código de ejemplo para enviar un SMS
Código Python
import requests
url = "https://dashboard.360nrs.com/api/rest/sms"
payload = "{ \"to\": [\"34666555444\"], \"from\": \"TEST\", \"message\": \"SMS text message\" }"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_AUTH_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Explicación del código
- Librería Requests: Se utiliza para realizar la solicitud HTTP POST.
- Payload: Contiene los datos del mensaje, incluyendo:
to
: Número(s) de destinatario con prefijo internacional.from
: Identificador alfanumérico del remitente.message
: Texto del mensaje en formato UTF-8.
- Encabezados: Incluyen el tipo de contenido y el token de autenticación.
- Respuesta: Se imprime la respuesta del servidor, que contiene información sobre el estado del envío.
Respuestas del servidor y manejo de errores
Código HTTP | Descripción | Ejemplo de respuesta JSON |
---|---|---|
202 | Envío exitoso. | json { "campaignId": 100000, "sendingId": 100001, "result": [{ "accepted": true, "to": "34666555444", "id": "XXXXXXXXXXXXX", "parts": 1 }] } |
207 | Envío parcial. | json { "campaignId": 100000, "result": [{ "accepted": false, "to": "34", "error": { "code": 102, "description": "No valid recipients" } }] } |
400 | Error en la solicitud. | json { "error": { "code": 102, "description": "No valid recipients" } } |
Manejo de errores en Python
if response.status_code == 202:
print("Mensaje enviado exitosamente:", response.json())
elif response.status_code == 207:
print("Algunos mensajes fallaron:", response.json())
elif response.status_code == 400:
print("Error en la solicitud:", response.json())
else:
print("Error desconocido:", response.status_code)
Parámetros de la API
Principales parámetros
Parámetro | Tipo | Obligatorio | Descripción |
---|---|---|---|
message | string | Sí | Texto del mensaje, máx. 160 caracteres (UTF-8). |
to | array | Sí | Lista de números de destinatarios con prefijo internacional. |
from | string | Sí | Remitente del mensaje, hasta 11 caracteres alfanuméricos. |
encoding | string | No | Codificación (gsm , utf-16 ). Por defecto gsm . |
scheduleDate | string | No | Fecha de envío programado (UTC). |
expirationDate | string | No | Fecha de expiración del mensaje (UTC). |
notificationUrl | string | No | URL para notificaciones de entrega. |
Ejemplos prácticos adicionales
Envío masivo
payload = "{ \"to\": [\"34666555444\", \"34666555333\"], \"from\": \"TEST\", \"message\": \"Promoción especial\" }"
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Programar un envío
pythonCopiar códigopayload = "{ \"to\": [\"34666555444\"], \"from\": \"TEST\", \"message\": \"Recordatorio\", \"scheduleDate\": \"20241120120000\" }"
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Personalizar mensajes con variables
payload = """
{
"to": ["34666555444", "34666555333"],
"from": "TEST",
"message": "Hola {name}, tu código es {OTP_CODE}",
"sub": [
{"name": "Juan", "OTP_CODE": "1234"},
{"name": "Ana", "OTP_CODE": "5678"}
]
}
"""
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Integrar la API de 360NRS con Python ofrece una solución eficiente y escalable para gestionar comunicaciones por SMS.
Esta integración mejora la experiencia del usuario al proporcionar notificaciones en tiempo real, personalizadas y programables, optimizando la comunicación en aplicaciones modernas.
¡Comienza hoy mismo a implementar esta poderosa herramienta!
Jaime Martínez – CDO y especialista en diseño y usabilidad
Jaime Martínez es nuestro Chief Design Officer (CDO) y un experto en comunicaciones móviles, marketing online, diseño y usabilidad. Con más de 20 años de experiencia en el sector, Jaime ha liderado proyectos innovadores y ha sido clave en el desarrollo de estrategias de diseño que mejoran la experiencia del usuario y optimizan la efectividad de las campañas de nuestros clientes. Su amplia trayectoria en el diseño y marketing digital aporta un enfoque único y esencial para el éxito de nuestras soluciones multicanal.
Deja una respuesta