SENDO PUSH API
API de envío de notificaciones PUSH para integrar tus eventos en flujos de backend, de aplicaciones de lado del cliente o automatizaciones programadas.
Envía notificaciones PUSH a un cliente a través de token que identifica el dispositivo destino tanto para plataformas iOS y Android. Antes de recibir las notificaciones los usuarios de tu app móvil deben dar permiso a la recepción en dispositivos iPhone y Android. Esto se logra mediante la suscripción de los mismos.
Para la entrega a dispositivos iPhone se requiere la configuración de los servicios Apple Push Notification (APN) y Google Cloud Messaging (GCM).
Enviar push por token
Este endpoint se utiliza para enviar una notificación push a múltiples dispositivos móviles identificados por sus tokens.
Atributos requeridos
| Campo | Tipo | Descripción | Valor por defecto | Opcional | Comentarios |
|---|---|---|---|---|---|
| notification_title | string | Título de la notificación. | ninguno | No | |
| notification_body | string | Mensaje de la notificación. | ninguno | No | |
| url_img | string | La URL de la imagen asociada a la notificación. | ninguno | Sí | |
| tokens | array | Un objeto que contiene el token del dispositivo al que se enviará la notificación. | ninguno | No | |
| content_available | array | Un booleano que se utiliza en iOS para indicar si la notificación está disponible para usarse cuando la aplicación está en primer plano. | true | Sí |
Cuerpo de la solicitud.
curl --location 'http://35.185.103.32:3000/api/push/sendByToken'
--header 'Content-Type: application/json'
--data '{"notification_title": "Envio de notificación token","notification_body": "Descripción de la notificación","url_img": "https://ejemplo.com/imagen.jpg","user_external_id": "2211"}'
| Código | Descripción |
|---|---|
| 200 | Exitoso |
{
"messageId": [
{
"messageId": number,
"token": string,
"user_external_id": string
}
],
"success": boolean,
"error": null
}
Respuestas del servidor.
Enviar notificación por usuario
Este endpoint se utiliza para enviar una notificación por un id de usuario.
Atributos requeridos
| Campo | Tipo | Descripción | Valor por defecto | Opcional | Comentarios |
|---|---|---|---|---|---|
| notification_title | string | Título de la notificación. | ninguno | No | |
| notification_body | string | Mensaje de la notificación. | ninguno | No | |
| url_img | string | La URL de la imagen asociada a la notificación. | ninguno | Sí | |
| user_external_id | string | El ID del usuario al que se enviará la notificación. | ninguno | No | |
| content_available | array | Un booleano que se utiliza en iOS para indicar si la notificación está disponible para usarse cuando la aplicación está en primer plano. | true | Sí |
Cuerpo de la solicitud.
curl --location 'http://35.185.103.32:3000/api/push/sendByToken'
--header 'Content-Type: application/json'
--data '{"notification_title": "Envio de notificación token","notification_body": "Descripción de la notificación","url_img": "https://ejemplo.com/imagen.jpg","tokens": [{"token":"<MOBILE_TOKEN>","user_external_id":"2211"}]}'
| Código | Descripción |
|---|---|
| 200 | Exitoso |
{
"messageId": [
{
"messageId": number,
"token": string,
"user_external_id": string
}
],
"success": boolean,
"error": null
}
Respuestas del servidor.
Enviar push por tema
Este endpoint se utiliza para enviar una notificación push a múltiples dispositivos móviles suscritos a un tema específico.
Atributos requeridos
| Campo | Tipo | Descripción | Valor por defecto | Opcional | Comentarios |
|---|---|---|---|---|---|
| notification_title | string | Título de la notificación. | ninguno | No | |
| notification_body | string | Descripción de la notificación. | ninguno | No | |
| url_img | string | La URL de la imagen asociada a la notificación | ninguno | Sí | |
| topic | string | Tema para mandar notificación con ese tema. | ninguno | No |
Cuerpo de la solicitud.
curl --location 'http://35.185.103.32:3000/api/push/sendBytopic'
--header 'Content-Type: application/json'
--data '{"notification_title": "Envio de notificación tema","notification_description": "Notificación de prueba usando tema","url_img": "https://ejemplo.com/imagen.jpg","topic": "Test Topic"}'
| Código | Descripción |
|---|---|
| 200 | Exitoso |
{
"messageId": number,
"success": boolean,
"error": null
}
Respuestas del servidor.
Suscripción
Este endpoint se utiliza para suscribir tokens de dispositivos móviles a un tema específico para recibir notificaciones push.
Atributos requeridos
| Campo | Tipo | Descripción | Valor por defecto | Opcional | Comentarios |
|---|---|---|---|---|---|
| tokens | array | Un arreglo de tokens de dispositivos móviles que se van a suscribir al tema. | ninguno | No | |
| topic | string | El nombre del tema al que se van a suscribir los tokens. | ninguno | No |
Cuerpo de la solicitud.
curl --location 'http://35.185.103.32:3000/api/push/subscribe'
--header 'Content-Type: application/json'
--data '{"tokens": ["<MOBILE_TOKEN>"]}'
| Código | Descripción |
|---|---|
| 200 | Exitoso |
{
"success": true,
"error": null
}
Respuestas del servidor.
Desuscripción
Este endpoint se utiliza para cancelar la suscripción de tokens de dispositivos móviles a un tema específico.
Atributos requeridos
| Campo | Tipo | Descripción | Valor por defecto | Opcional | Comentarios |
|---|---|---|---|---|---|
| tokens | array | Un arreglo de tokens de dispositivos móviles que están suscritos al tema. | ninguno | No | |
| topic | string | El nombre del tema al que se van a desuscribir los tokens. | ninguno | No |
Cuerpo de la solicitud.
curl --location 'http://35.185.103.32:3000/api/push/unsubscribe'
--header 'Content-Type: application/json'
--data '{"tokens": ["<MOBILE_TOKEN>"]}'
| Código | Descripción |
|---|---|
| 200 | Exitoso |
{
"success": true,
"error": null
}
Respuestas del servidor.
Histórico
Este endpoint se utiliza para obtener el historial de notificaciones de un usuario específico. La cantidad de historial se limita a un periodo de 48 horas
Required attributes
| Campo | Tipo | Descripción |
|---|---|---|
| userId | string | El ID del usuario para obtener el historial de notificaciones. |
Request body.
curl --location 'https://api.sendo.cloud/api/push/history'
--header 'Content-Type: application/json'
--data '{"userId": "<USER_ID>"}'
| Code | Description |
|---|---|
| 200 | Successful |
[
{
"messageId": "fed3fdfc-5fc6-456e-95b7-298a899dab87",
"title": "Lorem ipsum dolor sit amet",
"body": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae",
"eventDate": "2024-06-18 11:23:36",
"isRead": false
},
{
"messageId": "fed3fdfc-5fc6-456e-95b7-298a899dab88",
"title": "Lorem ipsum dolor sit amet",
"body": "Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae",
"eventDate": "2024-06-18 12:30:36",
"isRead": true
}
]
Respuestas del servidor.
Entrega
Este endpoint se utiliza para actualizar un evento de estado de notificación push.
NOTE: Para Firebase SDK: En desarrollo deberá agregar el siguiente código para habilitar las métricas de entrega
messaging().setDeliveryMetricsExportToBigQuery(true);
Required attributes
| Param | Type | Description |
|---|---|---|
| messageId | string | El ID de la notificación push para actualizar. |
| Code | Description |
|---|---|
| 200 | Successful |
{
"status": "Success"
},
Marcar como leído
Este endpoint se utiliza para marcar una notificación push como leída.
Required attributes
| Campo | Tipo | Descripción |
|---|---|---|
| messageId | Arreglo de string | El arreglo de ID de la notificación push a marcar como leídas. |
Request body.
curl --location 'https://api.sendo.cloud/api/push/set-read'
--header 'Content-Type: application/json'
--data '{"messageId": ["<MESSAGE_ID>"]}'
| Code | Description |
|---|---|
| 200 | Successful |
{
"status": "success"
}
Server responses.
Enrolamiento
Asignar token
Este endpoint debe de ser utilizado para asignar un token generado por el SDK de Firebase al usuario.
NOTA: La implementación del API debe de realizarse luego de que el SDK genere el token del dispositivo.
Required attributes
| Campo | Tipo | Descripción | Opcional | Comentarios |
|---|---|---|---|---|
| user_external_id | string | El ID del usuario a enrolar. | No | |
| token | string | El token del dispositivo a enrolar. | No | |
| os | string | El sistema operativo del dispositivo a enrolar. | Sí | |
| model | string | El modelo del dispositivo a enrolar. | Sí |
Cuerpo de la solicitud.
curl --location 'https://api.sendo.cloud/api/push/enrollment'
--header 'Content-Type: application/json'
--data '{"user_external_id": "<user_external_id>","token": "<TOKEN>"}'
| Code | Description |
|---|---|
| 200 | Successful |
{
"status": "success",
"message": "Token assigned to user 1"
}
Respuestas del servidor.
Actualizar token
Required attributes
| Campo | Tipo | Descripción | Opcional | Comentarios |
|---|---|---|---|---|
| user_external_id | string | El ID de usuario del usuario a actualizar. | No | |
| oldToken | string | Token expirado del dispositivo. | No | |
| newToken | string | El nuevo token generado por el dispositivo. | No |
Request body.
curl --location 'https://api.sendo.cloud/api/push/update-token'
--header 'Content-Type: application/json'
--data '{"user_external_id": "<user_external_id>","oldToken": "<TOKEN>","newToken": "<TOKEN>"}'
| Code | Description |
|---|---|
| 200 | Successful |
{
"status": "success",
"message": "Token updated to user 1"
}
Server responses.
En esta página
- Enviar push por token
- Enviar notificación por usuario
- Enviar push por tema
- Suscripción
- Desuscripción
- Histórico
- Entrega
- Marcar como leído
- <FaqSection client:load data={[ { id: "500", question: "500 | Server error", answer: "Unable to set push as read", prop: [ { title: "Response body", json: { message: "Unable to set push as read", error: "Internal Server Error", statusCode: 500, }, }, ], }, ]} />
- Enrolamiento