Push API v4
- Enviar una notificación o un mensaje a un único dispositivo o a una lista de dispositivos
- El contenido del push solo puede ser un único objeto push en formato JSON
- Para funciones relacionadas con etiquetas/alias, consulte AppPushAPI.
Esta es la versión más reciente de la Push API. Las mejoras de la versión v4 son las siguientes:
- Se utiliza autenticación básica HTTP (HTTP Basic Authentication) para autorizar el acceso. De este modo, se puede completar toda la solicitud de la API utilizando herramientas HTTP comunes, como curl y complementos del navegador.
- El contenido del push está en formato JSON.
Límites de tasa de solicitudes
Nuestra API impone límites a la frecuencia de llamadas para garantizar la estabilidad y la equidad del servicio. Los límites de QPS (consultas por segundo) para cada AppKey son los siguientes:
- Límite estándar: un máximo de 500 solicitudes por segundo.
- Límite avanzado: si usted es suscriptor de nuestro plan de pago y su AppKey de pago requiere un límite de QPS más alto, póngase en contacto con nuestro equipo comercial: Sales@engagelab.com.
Validación de llamadas
Para obtener más información, consulte Método de autenticación
Dirección de llamada
POST v4/push
Ejemplos de solicitud
Encabezado de solicitud
> POST /v4/push HTTP/1.1
> Authorization: Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ==
Cuerpo de la solicitud
{
"from": "push",
"to": "all",
"body": {
"platform": "web",
"notification": {
"alert": "Hi,MTPush !", // Opcional
"web": {
"alert": "web_push",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
}
},
"request_id": "12345678",
"custom_args": "business info"
}
Parámetros de la solicitud
La estructura de parámetros del push se detalla en la tabla siguiente.
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| from | String | Opcional | Remitente del negocio actual |
| to | String o JSON Object | Obligatorio | Destino de envío |
| body | JSON Object | Obligatorio | Cuerpo de la solicitud de envío |
| platform | String o JSON Array | Obligatorio | Plataforma de push |
| notification | JSON Object | Opcional | |
| message | JSON Object | Opcional | |
| options | JSON Object | Opcional | Parámetros de push |
| request_id | String | Opcional | Campo opcional personalizado que utiliza el cliente para identificar la solicitud y que se devuelve en la respuesta. |
| custom_args | JSON Object | Opcional | Campos opcionales personalizados por el cliente, que se devuelven al cliente durante el callback. |
from
El remitente del negocio actual. El valor es de tipo String y es opcional.
Ejemplos de solicitud
{
"from": "push"
}
to
Objeto de dispositivo de push, que indica la lista de dispositivos a los que se puede enviar un push. MTPush proporciona dos métodos: Registration ID y difusión.
Destino de push
| Palabra clave | Tipo | Significado | Descripción | Nota |
|---|---|---|---|---|
| all | String | Difusión | Enviar a todos los dispositivos | Enviar a los dispositivos objetivo que hayan estado activos en los últimos 30 días. |
| registration_id | JSON Array | Registration ID | Array. La relación entre múltiples registration_id es OR, es decir, la unión. | El ID del dispositivo. Se pueden enviar como máximo 1.000 mensajes por vez. |
| tag | JSON Array | Etiqueta | Arrays. La relación entre múltiples etiquetas es OR, es decir, se toma la concatenación. | Utilizar etiquetas para segmentar atributos de dispositivos y atributos de usuarios a gran escala. |
| tag_and | JSON Array | Etiqueta AND | Array. Múltiples etiquetas están en relación AND, es decir, se toma la intersección. | Tener en cuenta la distinción con tag; hasta 20 por vez. |
| tag_not | JSON Array | Etiqueta NOT | Array. Entre múltiples etiquetas, primero se toma el conjunto combinado de múltiples etiquetas y, después, se toma el conjunto complementario de ese resultado. | Enviar hasta 20 por vez. |
| alias | JSON Array | Alias | Array. Múltiples alias están en relación OR, es decir, se toma una concatenación. | Identificar a un usuario mediante un alias. |
La relación implícita entre múltiples valores en un array es OR, es decir, se toma la concatenación; sin embargo, tag_and es diferente, ya que la relación entre múltiples valores en un array es AND, es decir, se toma la intersección.
Si se utiliza tag_not de forma independiente, se realizará el procesamiento tag_not entre los usuarios de difusión.
Estos tipos pueden coexistir. La relación implícita entre múltiples polinomios cuando coexisten es AND, es decir, se toma la intersección. Por ejemplo:
"to": {
"tag": ["tag1", "tag2"],
"tag_and": ["tag3", "tag4"],
"tag_not": ["tag5", "tag6"]
}
Primero, calcular el resultado del campo "tag": ***`tag1 or tag2 = A`***;
A continuación, calcular el resultado del campo "tag_and": ***`tag3 and tag4 = B`***;
A continuación, calcular el resultado del campo "tag_not": ***`not (tag5 or tag6) = C`***;
El resultado final de "to" es ***`A and B and C`***.
body
El cuerpo de la solicitud. Los campos admitidos son los siguientes:
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| platform | String o JSON Array | Obligatorio | Plataforma de push |
| notification | JSON Object | Opcional | |
| message | JSON Object | Opcional | |
| options | JSON Object | Opcional | Parámetros de push |
notification
El objeto notification es uno de los objetos de contenido enviados (el otro es message) y se envía a la Web como una notificación.
web
| Palabra clave | Tipo | Opción | Significado | Descripción |
|---|---|---|---|---|
| alert | String o JSON Object | Obligatorio | Contenido | El contenido del mensaje en sí; sobrescribe el alert de nivel superior. |
| url | String | Obligatorio | URL de Web Push | Dirección de redirección al hacer clic en la notificación |
| title | String | Opcional | Título | Título del mensaje |
| extras | JSON Object | Opcional | Campos ampliados | Información Key/Value personalizada en formato JSON |
| icon | String | Opcional | Icono de notificación | Se recomienda 192×192 px |
| image | String | Opcional | Imagen grande | Se recomienda 360×180 px |
message
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| msg_content | String o JSON Object | Obligatorio | Contenido del mensaje |
| title | String | Opcional | Título del mensaje |
| content_type | String | Opcional | Tipo de contenido |
| extras | JSON Object | Opcional | Parámetros opcionales |
options
| Palabra clave | Tipo | Opción | Descripción |
|---|---|---|---|
| time_to_live | Int o String | Opcional | El valor predeterminado es 86400 (1 día) |
| cid | String | Opcional | Identificador único para evitar duplicados |
Respuesta
Código de estado HTTP
Referencias: HTTP-Status-Code
Restricciones de push
| Canal | Longitud del asunto | Longitud del contenido | Otras instrucciones |
|---|---|---|---|
| EngageLab | Sin límite, pero con límite de tamaño total | Sin límite, pero con límite de tamaño total | La longitud de la notificación de MTPush está limitada a 4000 bytes. |
| Canal del sistema | <20 caracteres (40 en inglés) | Límites variables según el sistema | Ninguna |
Código multilingüe
| Idioma | Código |
|---|---|
| Español | es |
| Inglés | en |
| Francés | fr |
| Alemán | de |
| Portugués (Brasil) | pt_BR |
| Español (España) | es_ES |
| Español (Latinoamérica) | es_419 |
