image


API Gestor de notificaciones


Índice

  1. Dispositivos
  2. Notificaciones
  3. Contadores
  4. Enviar
  5. Plantillas
  6. Tags
  7. Información adicional

Dispositivos

Listar dispositivos

Endpoint: HTTP POST /devices

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
users array IDs de usuarios sobre los que se desea consultar sus dispositivos NO

Ejemplo enví­o:

{
    "users": ["U00001", "U00002"]
}

Respuesta:

HEADER CODE
StatusCode 201

Ejemplo de respuesta:

{
  "U00001": [
    {
      "deviceId": 'ANDROID-XXXXX',
      "userId": '00001',
      "lang": 'es-es',
      "country": 'spain',
      "operator": 'movistar',
      "sdkVersion": '3.0.0',
      "osName": 'Android',
      "osVersion": '7.0',
      "deviceBrand": 'motorola',
      "deviceModel": 'Moto G (4)',
      "created": '2017-08-27T13:16:10.000Z'
    },
    ...
  ],
  ...
}

Asociar un dispositivo a un usuario

Endpoint: HTTP POST /user/:userId/device/:deviceId

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
deviceId string Identificador de dispositivo NO
userId string Identificador de usuario NO
lang string Idioma SI
osName  string Sistema operativo SI
osVersion string Versión del sistema operativo SI

Ejemplo enví­o:

{
  "lang": "es-ES",
  "osName": "Android",
  "osVersion": "7.0"
}

Respuesta:

HEADER CODE
StatusCode 201

Eliminar un dispositivo

Endpoint: HTTP DELETE /user/:userId/device/:deviceId

Parameters:

Nombre Tipo Descripción Opcional
deviceId string Identificador de dispositivo NO
userId string Identificador de usuario NO

Respuesta:

HEADER CODE
StatusCode 204

Notificaciones

Listar notificaciones

Endpoint: HTTP GET /user/:userId/notification

Parameters:

Nombre Tipo Descripción Opcional
userId string Identificador de usuario NO
page number Número de página NO
pageSize number Elementos por página NO
status  array Lista de estados que deben tener las notificaciones de respuesta SI

Ejemplo enví­o:

/user/U00001/notification?page=0&pageSize=10&status=sent,read

Ejemplo de respuesta:

[
  {
    "notificationId": "123123",
    "userId": "U00001",
    "status": "sent",
    "new": false,
    "created": "2017-06-17T08:45:43.000Z",
    "templateId":"0000001",
    "message":{
        "title": "title",
        "uri": "http://.../index.html",
        "description": "description",
      ...
    }
  },
  ...
]

Ver definición del objeto message


Obtener una notificación

Endpoint: HTTP GET /user/:userId/notification/:notificationId

Parameters:

Nombre Tipo Descripción Opcional
userId string Identificador de usuario NO
notificationId string Identificador de notificación NO

Ejemplo enví­o:

/user/U00001/notification/123123

Respuesta

HEADER CODE
StatusCode 200

Ejemplo de respuesta:

{
  "notificationId": "123123",
  "userId": "U00001",
  "status": "sent",
  "new": false,
  "templateId":"0000001",
  "created": "2017-06-17T08:45:43.000Z",
  "message":{
    "title": "title",
    "uri": "http://.../index.html",
    "description": "description",
    ...
  }
}

Actualizar una notificación

Endpoint: HTTP PUT /user/:userId/notification/:notificationId

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
userId string Identificador de usuario NO
notificationId string Identificador de notificación NO
status string Estado de la notificación NO

Ejemplo enví­o:

{
    "status": "read"
}

Respuesta:

HEADER CODE
StatusCode 201

Actualizar todas las notificaciones de un usuario

Endpoint: HTTP PUT /user/:userId/notification/all

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
userId string Identificador de usuario NO
status string Estado de la notificación NO

Ejemplo enví­o:

{
    "status": "deleted"
}

Respuesta:

HEADER CODE
StatusCode 201

Contadores

Obtener contadores

Endpoint: HTTP GET /user/:userId/counters

Parameters:

Nombre Tipo Descripción Opcional
userId string Identificador de usuario NO

Ejemplo de respuesta:

{
  "new": 27,
  "read": 4,
  "sent": 33,
  "deleted": 0
}

Enviar notificaciones

Enviar notificación simple

Endpoint: HTTP POST /message/send

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
message object Datos del mensaje NO
users array Listado de usuarios a notificar NO
inbox string Indica si se guardará en el buzón SI
allDevices boolean Envio a todos los devices del usuario o solo al último dado de alta SI

Ejemplo enví­o:

{
    "message":{
        "title": "title",
        "description": "description",
    ...
    },
    "inbox": "inbox_and_push",
    "allDevices": true,
    "users": ["U00001", "U00002"]
}

Respuesta:

HEADER CODE
StatusCode 201

Ejemplo de respuesta:

{
  "indigitallMessageId": 9
}

¡Ojo! Si "inbox" se establece como "inbox_only", no se devolverá ID del mensaje


Enviar notificación usando una plantilla

Endpoint: HTTP POST /template/:templateId/send

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
templateId string Identificador de plantilla NO
data object Datos que se mezclarán con la plantilla SI
users array Listado de usuarios a notificar NO
inbox string Indica si se guardará en el buzón SI
allDevices boolean Envio a todos los devices del usuario o solo al último dado de alta SI

Ejemplo enví­o:

{
    "data": {
        "name": "John Doe",
        "country": "Spain",
    ...
    },
  "inbox": "inbox_and_push",
    "allDevices": true,
    "users": ["U00001", "U00002"]
}

Respuesta:

HEADER CODE
StatusCode 201

Ejemplo de respuesta:

{
  "indigitallMessageId": 9
}

¡Ojo! Si "inbox" se establece como "inbox_only", no se devolverá ID del mensaje


Plantillas

Listar plantillas

Endpoint: HTTP GET /template

Parameters: ninguno

Ejemplo de respuesta:

[
  {
    "templateId": "NT001AT02",
    "message": {
      "title": "Hello <%=name%>",
      "description": "Welcome to <%=country%>",
      ...
    },
    "defaultData": {
      "name":"John Doe",
      "country":"Spain",
      ...
    },
    "inbox": "inbox_and_push",
    "allDevices": true,
    "created": "2017-07-13T18:26:40.000Z"
  },
    ...
]

Obtener una plantilla

Endpoint: HTTP GET /template/:templateId

Parameters:

Nombre Tipo Descripción Opcional
templateId string Identificador de plantilla NO

Respuesta

HEADER CODE
StatusCode 200

Ejemplo de respuesta:

{
    "templateId": "NT001AT02",
    "message": {
        "title": "Hello <%=name%>",
        "description": "Welcome to <%=country%>",
        ...
    },
    "defaultData": {
        "name":"John Doe",
        "country":"Spain",
    ...
    },
    "inbox": "inbox_and_push",
    "allDevices": true,
    "created": "2017-07-13T18:26:40.000Z"
}

Crear una plantilla

Endpoint: HTTP POST /template

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
templateId string Identificador de plantilla NO
message object Datos del mensaje NO
defaultData object Datos por defecto del mensaje NO
inbox string Indica si se guardará en el buzón SI
allDevices boolean Envio a todos los devices del usuario o solo al último dado de alta SI

Ejemplo enví­o:

{
    "templateId": "NT001AT02",
    "message": {
        "title": "Hello <%=name%>",
        "description": "Welcome to <%=country%>",
        ...
    },
    "defaultData": {
        "name":"John Doe",
        "country":"Spain",
    ...
    },
    "inbox": "inbox_and_push",
    "allDevices": true
}

Respuesta:

HEADER CODE
StatusCode 201

Actualizar una plantilla

Endpoint: HTTP PUT /template/:templateId

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
templateId string Identificador de plantilla NO
message object Datos del mensaje SI
defaultData object Datos por defecto del mensaje SI
inbox string Indica si se guardará en el buzón SI
allDevices boolean Envio a todos los devices del usuario o solo al último dado de alta SI

Ejemplo enví­o:

{
    "message": {
        "title": "Hello <%=name%>",
        "description": "Welcome to <%=country%>",
        ...
    },
    "defaultData": {
        "name":"John Doe",
        "country":"Spain",
    ...
    },
    "inbox": "inbox_and_push",
    "allDevices": true
}

Respuesta:

HEADER CODE
StatusCode 204

Eliminar una plantilla

Endpoint: HTTP DELETE /template/:templateId

Parameters:

Nombre Tipo Descripción Opcional
templateId string Identificador de plantilla NO

Respuesta:

HEADER CODE
StatusCode 204

Tags

Listar tags disponibles

Endpoint: HTTP GET /tag

Parameters: ninguno

Ejemplo de respuesta:

[
    {
        "id": "customer_premium",
        "name": "Clientes premium"
    },
    {
        "id": "customer_default",
        "name": "Clientes normales"
    },
    ...
]

Listar tags de un usuario

Endpoint: HTTP GET /user/:userId/tag

Parameters:

Nombre Tipo Descripción Opcional
userId string Itentificador usuario NO

Ejemplo de respuesta:

[
    {
        "id": "customer_premium",
        "name": "Clientes premium"
    },
    {
        "id": "customer_default",
        "name": "Clientes normales"
    },
    ...
]

Añadir un tag al usuario

Endpoint: HTTP POST /user/:userId/tag/:tagId

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
userId string Itentificador usuario NO
tagId string identificador del tag NO

Ejemplo enví­o:

{}

Respuesta:

HEADER CODE
StatusCode 201

Elimiar un tag de un usuario

Endpoint: HTTP DELETE /user/:userId/tag/:tagId

Content-type: application/json

Parameters:

Nombre Tipo Descripción Opcional
userId string Itentificador usuario NO
tagId string identificador del tag NO

Respuesta:

HEADER CODE
StatusCode 204

Información adicional

Autorización de las llamadas HTTP

Para autentificar una llamada hay dos metodos:

  • Usando el header "Authorize" y poner el token con "Bearer 1111" Ejemplo:
key value
Authorization Bearer 1111
  • Añadiendo el parametro token en la llamada.
http://[host]/webhook/notification?token=1111

Posibles errores de las llamadas HTTP

  • Error en los parámetros

    StatusCode: 400

    {
      "data": "page",
      "message": "Must be number and required",
      "status": 400
    }
  • Error en autorización

    StatusCode: 401

    {
      "data": "Token not valid",
      "message": "Unauthenticated, token not valid",
      "status": 401
    }
  • Error no existe el identificador

    StatusCode: 404

    {
      "data": "",
      "message": "User id not found",
      "status": 404
    }
  • Error en base de datos

    StatusCode: 500

    {
      "data": "ECONNREFUSED",
      "message": "Error to connect BDD",
      "status": 500
    }

Diccionario de datos

status

Estado de la notificación. Representa el ciclo de vida de una notificación.

Tipo: string

Valor Descripción
"sent" La mensaje ha sido enviado al usuario, pero aún no ha interactuado con él
"read" El usuario ha interactuado con la notificación
"deleted" El usuario ha eliminado la notificación

inbox

Especifica el canal por el que se enviará la notificación.

Tipo: string

Valor Descripción
"inbox_only" El mensaje podrá ser consultado en el buzón, pero no se enviará una notificación
"inbox_and_push" Se enviará una notificación que además podrá ser consultada en el buzón
"push_only" Solo se enviará la notificación. Es útil para evitar duplicados en el buzón

osName

Nombre de sistema operativo.

Tipo: string

Valor Descripción
"Android" Para appPush. Indentifica un dispositivo Android (smartphone o tablet)
"iOS" Para appPush. Indentifica un dispositivo iOS (iPod, iPad o iPhone)
"Firefox" Para webPush. Indentifica un navegador Firefox
"Safari" Para webPush. Indentifica un navegador Safari
"Chrome" Para webPush. Indentifica un navegador Chrome

osVersion

Versión del sistema operativo.

Tipo: string

lang

Idioma del navegador para webPush. Idioma del sistema operativo para appPush.

Tipo: string Formato: ISO 639 Ejemplo: "es-ES"

allDevices

Especifica si se enviará notificación a todos los dispositivos del usuario o solo a uno.

Tipo: boolean

Valor Descripción
true Se enviará una notificación a todos los dispositivos del usuario
false Se enviará una notificación solo al último dispositivo dado de alta

message

Objeto que representa un mensaje.

Nombre Tipo Descripción
id number ID del mensaje
title string Título del mensaje
description string Cuerpo del mensaje
uri string URL de destino o parámetros personalizados
icon string URL del logo del mensaje. Si es null será el logo por defecto del servicio
wallpaper_thumb string URL de la imagen grande del mensaje. Si es null no lleva foto
text string Texto botón izquierdo aceptación
url1 string URL botón izquierdo aceptación
button string Texto botón derecho rechazo
url2 string URL botón derecho rechazo
scheduled_at string Si no es envío inmediato, este campo indica en qué momento se lanzará la campaña
ctid string ID de la categoria del mensaje