Api Push

API Push

Gestiona el envío de notificaciones push así como su cancelación y el control de acuse de lectura de una notificación en un dispositivo concreto.

 

Envío

POST /2.0/push/send

Envia un notificación push que tendrá en su interior tanto el mensaje como los destinatarios, plataforma, forma de envío, programación, … etc. El cuerpo de la petición debe ser un objeto MensajeDTO.


Ejemplo de petición
POST /octopus-rs/services/2.0/push/send HTTP/1.1
Content-Type: application/json

 

Ejemplo de JSON mínimo necesario para envío
{
    "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
    "contenidosMensaje":[
        {
            "textoMensaje":"Envio push desde api",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true
        }
    ],
    "plataforma":1,
    "broadcast":true
}

 

Ejemplo de JSON para push extendida
{
    "idPlantilla": 7,
    "claveAplicacion":"32c0ce47942b472399cc365958a47c17",
    "contenidosMensaje":[
        {
            "textoMensaje":"Hola esto es una extendida",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true,
            "titulo":"HOLA desde API",
            "urlImagenIcono":"http://icube.milliyet.com.tr/Skorer600x298/2015/10/01/futbolda-14-takimin-henuz-galibiyeti-yok--6117947.Jpeg",
            "urlImagenHorizontal":" https://icube.milliyet.com.tr/Skorer600x298/2015/10/01/futbolda-14-takimin-henuz-galibiyeti-yok--6117947.Jpeg"
        }
    ],
    "botonIzq":"OCT_IrAnoticia",
    "botonDer":"OCT_IrAweb",
    "plataforma":1,
    “tipoMultimedia”:1,
    "broadcast":true,
    "fechaEnvio":"2016-02-22T12:50,Europe/Madrid" // para fecha en españa
}
Ejemplo de JSON con parámetros personalizados realizando búsqueda de dispositivos por localización
"claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
    "contenidosMensaje":[
        {
            "textoMensaje":"Envio push desde api con localizacion",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true
        }
    ],
    "plataforma":1,
    "broadcast":false,
    "coordX":37.40793727801404,
    "coordY":-5.942401885986328,
    "radio":1000,
    "mensajesParametros":[
        {
            "clave":"TIPO",
            "valor":"PUSH"
        }
    ]
}

Ejemplo de JSON realizando búsqueda de dispositivos por usuario
{
    "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
    "contenidosMensaje":[
        {
            "textoMensaje":"Envio push desde api por usuario",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true
        }
    ],
    "plataforma":1,
    "broadcast":false,
    "dispositivos":[
        {
            "usuario":"usuarioDemo"
        }
    ]
}

Ejemplo de JSON realizando búsqueda de dispositivos por idDispositivo
{
    "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
    "contenidosMensaje":[
        {
            "textoMensaje":"Envio push desde api por idDispositivo",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true
        }
    ],
    "plataforma":1,
    "broadcast":false,
    "dispositivos":[
        {
            "idDispositivo":"c0cf833a1e1cd222"
        }
    ]
}

Ejemplo de JSON realizando búsqueda de dispositivos por segmento
{
    "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
    "contenidosMensaje":[
        {
            "textoMensaje":"Envio push desde api por preferencias",
            "idiomaObj":{
                "codigo":"es"
            },
            "porDefecto":true
        }
    ],
    "plataforma":1,
    "broadcast":false,
    "mensajesPreferencias":[
        {
            "segment":{
                "segmentId":"EDAD
            },
            "operador":{
                "clave":"GT"
            },
            "valor":20,
            "conector":0
        }
    ]
}

Parámetros JSON
  • claveAplicacion: clave identificadora de la aplicación.
  • idPlantilla (Extendidas):plantilla  utilizada para el envío de la push (Si no se indica se mandará la plantilla por defecto):
    • 2 ICONO PUSH + DESCRIPCIÓN
    • 3 ICONO PUSH + TÍTULO + DESCRIPCIÓN
    • 4 ICONO PUSH + TÍTULO + DESCRIPCIÓN + BOTONES (Solo Android)
    • 5 ICONO PUSH + TÍTULO + IMAGEN (Solo Android)
    • 6 ICONO PUSH + TÍTULO + DESCRIPCIÓN + IMAGEN (Solo Android)
    • 7 ICONO PUSH + TÍTULO + DESCRIPCIÓN + BOTONES + IMAGEN (Solo Android)
    • 8 ICONO PUSH + TÍTULO + DESCRIPCIÓN +  GIF O VIDEO (Solo iOS)
    • 9 ICONO PUSH + TÍTULO + DESCRIPCIÓN + BOTONES + GIF O VIDEO (Solo iOS)
  • contenidosMensaje: Lista de objetos ContMensajeDTO que contienen el texto del mensaje en los idiomas disponibles
    • Parámetros necesarios:
      • textoMensaje: contenido en modo texto del mensaje a enviar.
      • idiomaObj: Objeto Idioma del mensaje.
      • código: parámetro en modo texto que indica el idioma del textoMensaje
      • porDefecto: parámetro booleano que indica si es el texto que se envía por defecto si no se indica el idioma del dispositivo que lo va a recibir.
      • titulo (según plantilla):  parámetro para las push extendidas que indica el título de la notificación.
      • urlImagenIcono(opcional): url de la imagen que se mostrará como icono en la push.
      • urlImagenHorizontal (según plantilla): url del archivo multimedia horizontal que se mostrará en la notificación. (Debe ser SIEMPRE https).
  • plataforma: parámetro de tipo entero que indica a la plataforma de los dispositivos a los que se va a enviar.
    • Valores admitidos
      1– Todos, 2– Android, 3– iOs
  • tipoMultimedia: parámetro de tipo entero que indica que tipo de archivo va a ir ligado a la notificación
    • Valores admitidos
      1– Imagen (.png o .jpg), 2– GIF (.gif), 3– Video (.mp4)
  • broadcast: parámetro booleano que indica si se enviará a todos los dispositivos disponibles.
  • botonIzq (según plantilla): será el alias de la acción para el botón izquierdo de la notificación.
  • botonDer (según plantilla): será el alias de la acción para el botón derecho de la notificación.
  • botonDefecto: será el alias de la acción por defecto que se ejecutará  al pulsar sobre la notificación.
  • fechaEnvio: parámetro de tipo texto que indica la fecha en la que se va a enviar la notificación en el caso de no querer enviarla en ese momento. El formato correcto de la fecha es “yyyy-MM-ddTHH:mmZ”. Donde Z es el huso horario y tiene formato “Continente/País”.
    Ej: “Europe,Madrid”
  • coordX: parámetro de tipo double que representa la coordenada X de la posición GPS a partir de la cual se discriminarán los dispositivos a los que se enviará el mensaje cuando se segmente por localización.
  • coordY: parámetro de tipo double que representa la coordenada Y de la posición GPS a partir de la cual se discriminarán los dispositivos a los que se enviará el mensaje cuando se segmente por localización.
  • radio: parámetro de tipo double que representa el radio de cobertura a partir de la posición GPS para realizar la búsqueda de dispositivos a los que se enviará el mensaje.
  • dispositivos: Lista de objetos DispositivoMensajeDTO. A partir de este objeto se puede realizar una búsqueda por :
    idDispositivo: parámetro de texto que representa el identificador del dispositivo al que se va a enviar el mensaje.
    idusuario: parámetro de texto que representa el usuario de los dispositivos al que se va a enviar el mensaje.
  • mensajesParametros: Lista de objetos MensajeParametrosDTO usados para cargar cambios con la recepción en la aplicación móvil receptora de las notificaciones. El objeto se compone de:
    • clave
    • valor
  • mensajesPreferencias: Lista de objetos MenPrefDTO para realizar la segmentación por preferencias.
    • Parámetros necesarios:
      • segment: indica la categoría por la cual se van a segmentar los dispositivos.
          • segmentId: nombre identificador de la categoría
          • type: tipo del valor que puede contener.
            • Valores admitidos:
              • NUM: numérico
              • LOG: lógico (true/false)
              • FEC: fecha (dd/mm/yyyy)
              • TEX: texto
              • MUL: múltiple (definido por el administrador de la aplicación.
          • operador: operador para realizar la comparación de discriminación de dispositivos.
          • clave: parámetro de tipo texto que representa el código del operador.
            • Valores admitidos:
              • EQ: igual que
              • NEQ: distinto de
              • LIKE: contenga
              • NLIKE: no contenga
              • IN: igual a valores de lista
              • NIN: distinto a valores de lista
              • GT: mayor que
              • GET: mayor o igual que
              • LT: menor que
              • LET: menor o igual que
              • BET: dentro de rango
              • BIRTH: compara fecha
            • Valores admitidos en función del type
        TIPO OPERADOR
        TEX EQ, NEQ, LIKE, NLIKE, IN, NIN
        NUM EQ, NEQ, IN, NIN, GT, GET, LT, LET, BET
        FEC EQ, NEQ, IN, NIN, GT, GET, LT, LET, BET, BIRTH
        MUL IN, NIN
        LOG EQ, NEQ
        • valor: valor con el que se van a realizar las operaciones
        • conector: parámetro numérico (entero) que indica cuando hay varios criterios de búsqueda si deben cumplirse obligatoriamente todas condiciones o si las condiciones son opcionales.
          • Valores admitidos:
            • 0: Obligatorio
            • 1: Opcional

 

  • menConfIos: Lista de objetos MenConfIosDTO que contienen las posibles opciones para los dispositivos iOS
    • Parámetros necesarios:
      • sound: (String) Sonido que se desea reproducir en la aplicación al enviar la notificación.
      • badgeNumber: (Integer) Número de notificaciones acumuladas sin visualizar.
      • contentAvailable: (Boolean) Indica si es una notificación silenciosa.

 

  • menConfAnd: Lista de objetos MenConfAndDTO que contienen las posibles opciones para los dispositivos Android
    • Parámetros necesarios:
      • delayWhileIdle: (Boolean) Parámetro de configuracion delay while idle.
      • collapseKey: (String) Parámetro de configuración collapse key.
      • timeToLive: (Big Integer) Parámetro de configuración time to live de un mensaje.

 

{
    "error": {
        "descripcion": "Todo correcto",
        "codError": "0"
    },
    "respuesta": [
        {
            "codigo": "7f7cfd41e13d45aeb815c06a623513b7"
        }
    ]
}
Contenido devuelto en respuesta

Codigo: código único identificador de la notificación push enviada.

 

Control de errores
  • Parámetro broadcast a false en JSON mínimo sin ningún otro parámetro de búsqueda
  • No introducir la claveAplicacion o introducir claveAplicacion inexistente
  • No introducir la plataforma o introducir valor de plataforma no válido
  • Introducir algún objeto ContenidoMensajeDTO nulo o vacío
  • No introducir el código de idioma o introducir un código de idioma inexistente

 

Envío de lista

POST /2.0/push/sendList

Envia una lista notificaciones push. Cada notificación tendrá en su interior tanto el mensaje como los destinatarios, plataforma, forma de envío, programación, … etc. El cuerpo de la petición debe ser un array de objetos MensajeDTO.


Ejemplo de petición
POST /octopus-rs/services/2.0/push/sendList HTTP/1.1
Content-Type: application/json

 

Ejemplo de JSON mínimo necesario para envío
[
    {
        "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
        "contenidosMensaje":[
           {
                "textoMensaje":"Envio push1 desde api",
                "idiomaObj":{
                    "codigo":"es"
                },
                "porDefecto":true
            }
        ],
        "plataforma":1,
        "broadcast":true
    },
    {
        "claveAplicacion":"1afd7ea2f688459699d2597f878f7860",
        "contenidosMensaje":[
            {
                "textoMensaje":"Envio push2 desde api",
                "idiomaObj":{
                    "codigo":"en"
                },
                "porDefecto":true
            }
        ],
        "plataforma":2,
        "broadcast":true
    }
]
Ejemplo de respuesta
{
    "error": {
        "descripcion": "Todo correcto",
        "codError": "0"
    },
    "respuesta": [
        {
            "error": {
                "descripcion": "Todo correcto",
                "codError": "0"
            },
            "respuesta": [
                {
                    "codigo": "d7201b6bb8ec48cb9da1c2cbb056e82e"
                }
            ]
        },
        {
            "error": {
                "descripcion": "Todo correcto",
                 "codError": "0"
            },
            "respuesta": [
                {
                    "codigo": "b3127f8c81844f3b998ba1428e19eed0"
                }
            ]
        }
    ]
}

Contenido devuelto en respuesta

Codigo: código único identificador de la notificación push enviada.


Control de errores
  • Parámetro broadcast a false en JSON mínimo sin ningún otro parámetro de búsqueda.
  • No introducir la claveAplicacion o introducir claveAplicacion inexistente.
  • No introducir la plataforma o introducir valor de plataforma no válido.
  • Introducir algún objeto ContenidoMensajeDTO nulo o vacío.
  • No introducir el código de idioma o introducir un código de idioma inexistente.

 

Cancelar envío 

GET /2.0/push/cancelSend/{claveAplicacion}/{codigoMensaje}

Cambia el estado de un mensaje programado a cancelado y no se envía a los dispositivos.

Ejemplo de petición
GET /octopus-rs/services/2.0/push/cancelSend/1afd7ea2f688459699d2597f878f7860/eae6d1a766b34116a378aeee185f98f1 HTTP/1.1
Content-Type: application/json

 

Ejemplo de respuesta
{
    "error": {
        "descripcion": "Todo correcto. El mensaje con código eae6d1a766b34116a378aeee185f98f1 ha sido eliminado correctamente.",
        "codError": "0"
    },
    "respuesta": []
}

Control de errores
  • Introducir una claveAplicacion inexistente.
  • Introducir un código de mensaje inexistente.
  • Introducir un código que no se corresponde con la aplicación.
Parámetros
  • claveAplicacion: identificador de la aplicación
  • codigoMensaje: código identificador del mensaje

 

 

 

Api Push