API SMS Sending
Si desea automatizar el envío de SMS de notificación y marketing sin generarlos a través de la plataforma EngageLab, se puede llamar a esta API. Especificar el ID de la plantilla de SMS y los destinatarios objetivo, y el sistema enviará automáticamente los SMS según el contenido de la plantilla.
Configuración de la plataforma
Antes de llamar, se deben completar las siguientes configuraciones en la consola de SMS de EngageLab:
Configuración de plantilla de SMS: Antes de llamar a la API, ir a la página de gestión de plantillas para personalizar y enviar plantillas de SMS. La plantilla solo se puede utilizar después de que haya sido aprobada y se haya obtenido el ID de la plantilla.
Configuración de clave de API: Ir a la página de Claves de API para crear una clave de autenticación básica (Basic) de API.
Proceso de llamada
Consultar el siguiente proceso para llamar a la API de envío de SMS. Si tiene alguna pregunta, contactar con atención al cliente.
URL de llamada
POST https://smsapi.engagelab.com/v1/messages
Autenticación de la llamada
Utilizar HTTP Basic Authentication para la verificación. Añadir Authorization en el encabezado HTTP:
Authorization: Basic ${base64_auth_string}
El algoritmo de generación del base64_auth_string anterior es: base64(dev_key:dev_secret)
Formato de solicitud
Encabezado de solicitud
POST /v1/messages HTTP/1.1
Content-Type: application/json
Authorization: Basic amlndWFuZ2RldjpkZXZfc2VjcmV0
Cuerpo de solicitud
{
"to": [
"923700056581"
],
"template": {
"id": "1233",
"params": {
"content": "Verification code: 039487. This code will expire in 5 minutes. You are attempting to create your account."
}
}
}
Parámetros de solicitud
Un objeto de solicitud se expresa en formato JSON, por lo que el encabezado de solicitud debe incluir Content-Type: application/json.
| Nombre | Ubicación | Tipo | Obligatorio | Descripción | Notas |
|---|---|---|---|---|---|
| Authorization | header | array[string] | No | ||
| to | body | array[string] | Sí | Lista de ID objetivo | Números de teléfono objetivo |
| plan_name | body | string | No | Nombre del plan | Opcional; el valor predeterminado es "-" si no se proporciona |
| schedule_time | body | integer | No | Hora programada | No es obligatorio para envíos no programados; marca de tiempo |
| template | body | object | Sí | ||
| id | body | string | Sí | ||
| params | body | object | Sí | ||
| custom_args | body | object | No | Parámetro personalizado |
Si se han personalizado variables al crear la plantilla, se deben pasar aquí sus valores. Si no se pasan, se enviará directamente la clave de la variable, por ejemplo, {{var1}}.
Explicación de params
Para el contenido de plantilla con campos de variables personalizados, asignar valores mediante params. Por ejemplo, si el contenido de la plantilla es Hi {{name}}, welcome to EngageLab, se debe asignar el parámetro como params:{"name":"Bob"}.
Ejemplos de solicitud
1. Envío de contenido de notificación personalizado:
{
"to": ["+8618701235678"],
"template": {
"id": "notification-template",
"params": {
"order": "123456"
}
}
}
2. Envío de contenido de marketing personalizado:
{
"to": ["+8618701235678"],
"template": {
"id": "marketing-template",
"params": {
"name": "EngageLab",
"promotion": "30%"
}
}
}
Respuesta
El código de estado HTTP es 200 y el cuerpo de la respuesta contiene los siguientes campos:
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| plan_id | string | Sí | ID del plan |
| total_count | integer | Sí | Número de destinatarios recibidos |
| accepted_count | integer | Sí | Número de destinatarios válidos recibidos |
| message_id | string | Opcional | Se devuelve en envíos individuales con el ID de mensaje correspondiente |
Ejemplo de éxito (destinatario único)
{
"plan_id": "1972488990548348928",
"total_count": 1,
"accepted_count": 1,
"message_id": "1972488990804201472"
}
Ejemplo de éxito (múltiples destinatarios)
{
"plan_id": "1972484198153367552",
"total_count": 2,
"accepted_count": 2
}
Ejemplo de éxito (tarea programada)
{
"plan_id": "1972492618659033088",
"total_count": 1,
"accepted_count": 1,
"schedule_info": {
"task_id": 1972492621368553472
}
}
Ejemplo de error
{
"plan_id": "1972490061974913024",
"total_count": 1,
"accepted_count": 1,
"message": "err xxxx",
"code": 1
}
Errores de envío
El código de estado HTTP es 200 y el cuerpo de la respuesta contiene los siguientes campos:
| Campo | Tipo | Obligatorio |
|---|---|---|
| plan_id | string | Sí |
| total_count | integer | Sí |
| accepted_count | integer | Sí |
| message | string | Sí |
| code | integer | Sí |
{
"plan_id": "string",
"total_count": 0,
"accepted_count": 0,
"message": "string",
"code": 0
}
Códigos de error
| Código de error | Código HTTP | Descripción |
|---|---|---|
| 1000 | 500 | Error interno |
| 2001 | 401 | Fallo de autenticación; se proporcionó un token incorrecto |
| 2002 | 401 | Fallo de autenticación; el token ha caducado o está deshabilitado |
| 2004 | 403 | Sin permisos para llamar a esta API |
| 3001 | 400 | Formato de parámetro de solicitud no válido; comprobar si se ajusta al formato JSON |
| 3002 | 400 | Parámetros de solicitud no válidos; comprobar si cumplen los requisitos |
| 3003 | 400 | Parámetros de solicitud no válidos; la validación de negocio ha fallado; consultar el campo message para ver los detalles del error |
| 3004 | 400 | Se ha superado el límite de frecuencia; no se puede reenviar la misma plantilla al mismo usuario objetivo dentro del periodo de validez del código de verificación |
| 4001 | 400 | Recurso no encontrado; por ejemplo, uso de una plantilla inexistente para el envío de mensajes |
| 5001 | 400 | Fallo en el envío del mensaje de código de verificación; consultar el campo message para ver los detalles del error |
