La WhatsApp Python API de 360NRS es una herramienta robusta que permite a desarrolladores automatizar la mensajería en WhatsApp, facilitando el envío de plantillas, la gestión de conversaciones activas y la creación de notificaciones personalizadas.
Python, conocido por su simplicidad y versatilidad, es ideal para implementar esta integración de manera técnica y escalable.
En este artículo, exploraremos cómo utilizar la API de 360NRS con ejemplos claros y detallados que incluyen código reutilizable para una integración eficiente de WhatsApp.
Contenidos
Configuración y envío de plantillas con WhatsApp Python API
A continuación, se presenta un ejemplo técnico para realizar un envío de plantilla a través de la API.
Código de ejemplo: Envío de plantilla
import requests
url = "https://dashboard.360nrs.com/api/rest/whatsapp"
payload = "{ \"templateId\": 123, \"from\": \"34666777555\", \"messages\": [ { \"to\": \"34666555444\" } ] }"
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 Utilizada:
requests
para realizar solicitudes HTTP. - Endpoint de la API:
https://dashboard.360nrs.com/api/rest/whatsapp
. - Headers:
Content-Type
: Indica que el contenido de la solicitud es JSON.Authorization
: Token necesario para autenticar la solicitud.
- Payload: JSON que contiene:
templateId
: ID de la plantilla previamente aprobada.from
: Número remitente autorizado.messages
: Lista de destinatarios con sus respectivos números.
Respuestas del servidor
La API devuelve diferentes códigos y estructuras JSON para informar el estado de las solicitudes:
Respuesta de Éxito (HTTP 202)
{
"campaignId": 100000,
"sendingId": 100001,
"result": [
{
"accepted": true,
"to": "34666555444",
"id": "04c80b02-8c0c-4884-bab8-89d6bc1fe406"
}
]
}
Respuesta con errores parciales (HTTP 207)
{
"campaignId": 100000,
"sendingId": 100001,
"result": [
{
"accepted": true,
"to": "34666555444",
"id": "8b4e5d35-dc16-4e2e-8a9c-c222db81f5ba"
},
{
"accepted": false,
"to": "34",
"error": {
"code": 102,
"description": "The messages.1.to field does not contain a valid phone number"
}
}
]
}
Respuesta de error (HTTP 400)
{
"error": {
"code": 140,
"description": "Invalid template"
}
}
Gestión de conversaciones activas
La API permite consultar conversaciones en curso y responder a ellas. Solo es posible enviar mensajes en sesiones activas, verificando el parámetro isSessionActive
.
Consultar conversaciones
import requests
url = "https://dashboard.360nrs.com/api/rest/whatsapp/conversations"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_AUTH_TOKEN'
}
response = requests.request("GET", url, headers=headers)
print(response.text)
Responder a una conversación activa
import requests
url = "https://dashboard.360nrs.com/api/rest/whatsapp/conversations/34666777555/34666555444/messages"
payload = "{ \"content\": \"Message content\" }"
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_AUTH_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Parámetros principales de WhatsApp Python API
Parámetro | Tipo | Requerido | Descripción |
---|---|---|---|
templateId | integer | Sí | ID de la plantilla aprobada. |
from | string | Sí | Número remitente autorizado. |
messages | array | Sí | Lista de destinatarios y detalles de los mensajes. |
messages.*.to | string | Sí | Número de teléfono del destinatario (con prefijo internacional). |
messages.*.bodyFields | array | No | Variables dinámicas para personalizar el mensaje. |
Ejemplos avanzados de uso
Envío de plantilla con variables
import requests
url = "https://dashboard.360nrs.com/api/rest/whatsapp"
payload = """
{
"templateId": 123,
"from": "34666777555",
"messages": [
{
"to": "34666555444",
"headerFields": ["Header Value"],
"bodyFields": ["Body Value 1", "Body Value 2"]
}
]
}
"""
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_AUTH_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Envío de plantilla con ubicación
import requests
url = "https://dashboard.360nrs.com/api/rest/whatsapp"
payload = """
{
"templateId": 123,
"from": "34666777555",
"messages": [
{
"to": "34666555444",
"location": {
"lat": "39.92516922986921",
"long": "-0.10572674363232447",
"name": "NRS-Group",
"address": "Carrer, Av. Arcadi Garcia Sanz, 19, 12540 Vila-real, Castelló"
}
}
]
}
"""
headers = {
'Content-Type': 'application/json',
'Authorization': 'Basic YOUR_AUTH_TOKEN'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Casos de uso comunes
- E-commerce: Confirmación de pedidos y actualizaciones de envío.
- Banca: Alertas transaccionales y autenticación en dos pasos.
- Atención al Cliente: Respuestas automáticas y seguimiento de casos.
La WhatsApp Python API es una herramienta indispensable para empresas que buscan optimizar su comunicación a través de WhatsApp. Con los ejemplos y explicaciones proporcionados, puedes implementar una integración eficiente, mejorando tanto la experiencia del usuario como la automatización de procesos.
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