Compatibilidad de la API de Mensaje
SMSBAT admite una capa de compatibilidad con Messagio API. Esto le permite migrar sus integraciones de Viber existentes diseñadas para Messagio directamente a SMSBAT sin tener que reescribir su estructura de carga útil ni cambiar la lógica de integración.
Configuración de conexión
Para enrutar solicitudes a través de SMSBAT, actualice la URL base y las credenciales de autenticación en su integración:
- URL base:
https://restapi.smsbat.com - Punto final:
POST /api/SendMessage - Formato de solicitud:
application/x-www-form-urlencoded(Datos del formulario)
Autenticación y credenciales
Las solicitudes se autentican utilizando parámetros enviados directamente dentro de los datos del formulario del cuerpo de la solicitud:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
usuario | cadena | Sí | El inicio de sesión de su cuenta SMSBAT o su identificador de usuario. |
signo | cadena | Sí | Secreto de API o firma registrada para el nombre del remitente. |
de | cadena | Sí | Nombre alfabético del remitente registrado. |
método_envío | cadena | Sí | Tipo de canal. Utilice viber para mensajes habituales de Viber Business o viber_otp para plantillas Viber OTP. |
teléfono | cadena | Sí | Número de teléfono del destinatario en formato internacional (por ejemplo, “380501234567”). |
Tipos de mensajes de Viber
Elija una pestaña a continuación para ver los parámetros específicos y solicitar cargas útiles para diferentes estructuras de mensajes de Viber:
Envía un mensaje de texto simple.
Parámetros adicionales:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
txt | cadena | Sí | Texto del mensaje. |
Ejemplo de carga útil de solicitud:
POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded
sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Hello+from+SMSBAT%21
Parámetros adicionales:
| Parámetro | Tipo | Requerido | Descripción |
| :--- | :--- | :--- | :--- |
| `plantilla.id` | cadena | **Sí** | ID de plantilla Viber OTP preaprobada. |
| `plantilla.lang` | cadena | **Sí** | Código de idioma de plantilla (por ejemplo, `en`, `uk`). |
| `plantilla.params.pin` | cadena | **Sí** | El valor del pin OTP para inyectar en la plantilla. |
| `template.params.business_platform_name` | cadena | **Sí** | El marcador de posición del nombre comercial en la plantilla. |
| `template.params.code_validity_time` | cadena | **Sí** | Período de validez del PIN en minutos. |
**Ejemplo de carga útil de solicitud:**
```http
POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded
sending_method=viber_otp&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&template.id=otp_template_123&template.lang=en&template.params.pin=123456&template.params.business_platform_name=SMSBAT&template.params.code_validity_time=7
```
Envía una tarjeta de mensaje interactiva que contiene varias diapositivas (tarjetas) que el usuario puede deslizar.
Parámetros adicionales:
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
txt | cadena | Sí | Texto del título del carrusel. |
carrusel[N].título | cadena | Sí | Título de la tarjeta N (comenzando en 0). |
carrusel[N].image_url | cadena | Sí | URL de imagen HTTPS pública de la tarjeta “N”. |
carrusel[N].etiqueta_primaria | cadena | Sí | Título del botón principal de la tarjeta N. |
carrusel[N].primary_url | cadena | Sí | URL del enlace del botón principal de la tarjeta N. |
carrusel[N].etiqueta_secundaria | cadena | No | Título del botón secundario de la tarjeta N. |
carrusel[N].secundaria_url | cadena | No | URL del enlace del botón secundario de la tarjeta N. |
Ejemplo de carga útil de solicitud:
POST /api/SendMessage HTTP/1.1
Host: restapi.smsbat.com
Content-Type: application/x-www-form-urlencoded
sending_method=viber&from=MySender&user=myuser&phone=380501234567&sign=api_secret_signature&txt=Top+picks+for+you&carousel%5B0%5D.title=First+Offer&carousel%5B0%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-1.png&carousel%5B0%5D.primary_label=Open&carousel%5B0%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-1&carousel%5B0%5D.secondary_label=Details&carousel%5B0%5D.secondary_url=https%3A%2F%2Fwww.example.com%2Fitem-1%2Fdetails&carousel%5B1%5D.title=Second+Offer&carousel%5B1%5D.image_url=https%3A%2F%2Fwww.example.com%2Fitem-2.png&carousel%5B1%5D.primary_label=Open&carousel%5B1%5D.primary_url=https%3A%2F%2Fwww.example.com%2Fitem-2
Formato de respuesta
El punto final de compatibilidad de la API de Messagio devuelve respuestas en formato XML con un código de estado “HTTP 200 OK”.
Respuesta aceptada (éxito)
<response>
<code>0</code>
<tech_message>OK</tech_message>
<msg_id phone="380501234567">MESSAGE_GUID</msg_id>
</response>
Respuestas de error
Si falla la validación de los parámetros de una solicitud o la autenticación, la respuesta devolverá un código distinto de cero.
<response>
<code>-1</code>
<tech_message>PARAM ERROR (sign)</tech_message>
</response>
Devoluciones de llamada
Las URL de devolución de llamada deben implementarse y alojarse en su plataforma. SMSBAT envía devoluciones de llamadas HTTP para actualizar su sistema con respecto a eventos de entrega, respuestas a encuestas y respuestas de usuarios.
1. Devolución de llamada del estado de entrega
Se envía cuando un mensaje cambia de estado (entregado, leído, fallido).
- Tipo de contenido:
aplicación/x-www-form-urlencoded - Método:
POST
Solicitar formatos de carga útil:
- Entregado:
msg_id=MESSAGE_GUID&status=delivered - Visto/Leído:
msg_id=MESSAGE_GUID&status=delivered&type=seen - No entregado/Error:
msg_id=MESSAGE_GUID&status=undelivered&status_extended=REASON
Descripción de campos:
msg_id: ID de mensaje único (GUID) SMSBAT devuelto en la respuesta de SendMessage.estado: resultado de la entrega (entregado,no entregadooestado desconocido).tipo: se establece envistocuando el mensaje ha sido visto por el destinatario.status_extended: motivo técnico específico del estado no entregado (por ejemplo,VIBER_EXPIRED,VIBER_BLOCKED_BY_USER,VIBER_USER_NOT_FOUND,VIBER_NO_DEVICE).
2. Devolución de llamada de respuesta a la encuesta
Se activa cuando un usuario selecciona una opción de respuesta en un mensaje de Viber Survey.
- Tipo de contenido:
aplicación/x-www-form-urlencoded - Método:
POST
Solicitar formato de carga útil:
msg_id=ORIGINAL_SURVEY_MESSAGE_GUID&text=SELECTED_OPTION_TEXT
3. Devolución de llamada de mensaje de usuario entrante
Se activa cuando un usuario envía un mensaje de texto o una respuesta multimedia a su servicio Viber Business.
- Tipo de contenido:
aplicación/json - Método:
POST
Solicitar formato de carga útil:
{
"msg_id": "INBOUND_MESSAGE_GUID",
"text": "Hello, I have a question",
"media": "https://example.com/user-attachment.png",
"phone": "380501234567",
"sender_bm_id": "12345"
}
Descripción de campos:
msg_id: el ID de mensaje único generado para la respuesta entrante.text: contenido de texto enviado por el usuario (puede sernulosi solo enviaron medios).media: URL directa para descargar cualquier archivo adjunto multimedia enviado por el usuario (puede sernulosi solo es texto).phone: Número de teléfono del remitente en formato internacional.sender_bm_id: el ID del remitente de Viber Business.